home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / dev / amos / ADV-ITA.lha / Adventures.AMOS / Adventures.amosSourceCode
Encoding:
AMOS Source Code  |  2001-01-08  |  381.7 KB  |  11,904 lines

  1. '-> Adventures Conceiver by Stefano Regattin 
  2. 'i> 12 giugno 1996 
  3. 'm> 13,14,15,16,17,19,20,21,22,26,27,28,30 giugno 1996 
  4. 'm> 1,2,3,4,5,6,13,14,15,17,18,20,21,23 luglio 1996
  5. 'm> 4,17,31 agosto 1996
  6. 'm> 7,14,15,16,28 settembre 1996 
  7. 'm> 2,8,20,21 ottobre 1996 
  8. 'm> 1,2,5 novembre 1996
  9. 'm> 23,25 febbraio 1997
  10. 'm> 1,2,3,4,5,6,7,8 marzo 1997 
  11. 'm> 29 maggio 1997 
  12. 'm> 6,12,13,14 giugno 1997 
  13. 'm> 29 agosto 1997 
  14. 'm> 10,19,28,29,30 settembre 1997
  15. 'm> 1,6,31 ottobre 1997
  16. 'm> 1,3,4,5,6,7,8,9,13,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 novembre 1997 
  17. 'm> 1,2,3,4,5,6,7,8,9,11,12,13,14,16,17,22 dicembre 1997 
  18. 'm> 4 gennaio 1998 
  19. 'm> 28,31 marzo 1998 
  20. 'm> 22,23,24,25,26,27,28,30 aprile 1998
  21. 'm> 1,2,5,7,8,9,10 maggio 1998 
  22. 'm> 13,15,16,17,18,19,20,21,23,26,27,28,29 giugno 1998 
  23. 'm> 2,3,5,6,7,10,11,12,13,16,17,18,19,20,21,22,25,28,30,31 luglio 1998 
  24. 'm> 2,3,4,5,6,7,9,10,15 agosto 1998  
  25. 'm> 7,11,20 settembre 1998   
  26. 'm> 5,6,7,8,9,10,14,16,17,20,23,27,28 novembre 1998        
  27. 'm> 4,5,6,7,11,15,17,22,24,29,31 dicembre 1998       
  28. 'm> 5,14 gennaio 1999  
  29. 'm> 2,10,15,27 febbraio 1999   
  30. 'm> 1,9 marzo 1999 
  31. 'm> 14 ottobre 1999
  32. 'm> 1,3,11,14,23 novembre 1999     
  33. 'm> 20 dicembre 1999 
  34. 'm> 24 febbraio 2000 
  35. 'm> 22 agosto 2000 
  36. 'm> 8 gennaio 2001 
  37. '----------------------------------------------------------------------------- 
  38. 'Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0. Pu�  
  39. 'essere liberamente distribuito. Pu� essere modificato, purch� mi si citi nel
  40. 'programma finale risultante. Se si decide di utilizzarlo, spedire 10.000 lire 
  41. 'o 5 Euro al seguente nominativo ed indirizzo: Stefano Regattin, piazza Pietro 
  42. 'Gasparri 4/U, 20161 Milano, Italia. Buon divertimento, grazie e ciao!   
  43. '----------------------------------------------------------------------
  44.  
  45. Set Buffer 910
  46.  
  47. FILEREQUESTERMUSICA=False
  48.  
  49. Data "E' l'alba","E' mattina","E' giorno","E' pomeriggio","E' il tramonto"
  50. Data "E' sera","E' notte"
  51. Data "Il cielo si sta schiarendo","Il sole si sta alzando","Il sole ï¿½ alto"
  52. Data "Il sole sta calando","Il cielo si sta oscurando"
  53. Data "La luna si sta alzando","La luna ï¿½ alta","La luna sta calando"
  54. Data "E' nuvoloso","Sta piovendo","Sta nevicando","Sta grandinando"
  55. Data "C'� la nebbia","E' buio"
  56.  
  57. Data "N","Nord","NE","NordEst","E","Est","SE","SudEst","S","Sud","SO"
  58. Data "SudOvest","O","Ovest","NO","NordOvest","Sopra","Sopra","Sotto","Sotto"
  59.  
  60. Data "albero","alberi",100000,"albero rotto","alberi rotti",75000,%10000000,0
  61. Data "arco","archi",3000,"arco rotto","archi rotti",1500,%10001000000,9
  62. Data "arancia","arance",250,"buccia di arancia","bucce di arancia",10,1,1
  63. Data "banana","banane",300,"buccia di banana","bucce di banana",15,1,1
  64. Data "bastone","bastoni",1000,"bastone rotto","bastoni rotti",750,%1000000,2
  65. Data "cedro","cedri",200,"buccia di cedro","bucce di cedro",10,1,1
  66. Data "coltello","coltelli",2000,"coltello rotto","coltelli rotti",1000,%1000000,10
  67. Data "dattero","datteri",25,"guscio di dattero","gusci di dattero",5,1,1
  68. Data "fico","fichi",220,"buccia di fico","bucce di fico",10,1,1
  69. Data "foglietto","foglietti",2,"foglietto strappato","foglietti strappati",1,%1000,0
  70. Data "fragola","fragole",10,"picciolo di fragola","piccioli di fragola",1,1,1
  71. Data "freccia","frecce",100,"freccia rotta","freccie rotte",50,%101000000,1
  72. Data "limone","limoni",200,"buccia di limone","bucce di limone",10,1,1
  73. Data "maglia","maglie",5000,"maglia rotta","maglie rotte",2500,%100,19
  74. Data "mandarino","mandarini",175,"buccia di mandarino","bucce di mandarino",10,1,1
  75. Data "mapo","mapo",200,"buccia di mapo","bucce di mapo",10,1,1
  76. Data "masso","massi",50000,"masso rotto","massi rotti",50000,0,0
  77. Data "mela","mele",250,"torsolo di mela","torsoli di mela",50,1,1
  78. Data "pera","pere",250,"torsolo di pera","torsoli di pera",50,1,1
  79. Data "pompelmo","pompelmi",275,"buccia di pompelmo","bucce di pompelmo",10,1,1
  80. Data "spada","spade",7500,"spada rotta","spade rotte",5000,%1000000,20
  81.  
  82. Data "anarchico","anarchici","bandito","banditi","barbaro","barbari"
  83. Data "bastardo","bastardi","bravotto","bravotti","cretino","cretini"
  84. Data "debosciato","debosciati","deficiente","deficienti"
  85. Data "delinquente","delinquenti","estremista","estremisti"
  86. Data "fanatico","fanatici","fanfarone","fanfaroni","fellone","felloni"
  87. Data "fetente","fetenti","fessacchiotto","fessacchiotti","fesso","fessi"
  88. Data "guerrafondaio","guerrafondai","idiota","idioti","imbecille","imbecilli"
  89. Data "malfattore","malfattori","maniaco","maniaci","maramaldo","maramaldi"
  90. Data "negriero","negrieri","ribelle","ribelli","rimbambito","rimbambiti"
  91. Data "pervertito","pervertiti","pirata","pirati","pirlone","pirloni"
  92.  
  93. Data "Acqua",5
  94. Data "Bosco",2
  95. Data "Collina",1
  96. Data "Foresta",4
  97. Data "Ghiaccio",3
  98. Data "Montagna",2
  99. Data "Neve",3
  100. Data "Oasi",0
  101. Data "Palude",3
  102. Data "Pianura",0
  103. Data "Roccia",4
  104. Data "Sabbia",1
  105.  
  106. Data "Adventures Conceiver ï¿½ stato realizzato da me con AMOS Professional 2.0"
  107. Data ". Pu� essere liberamente distribuito. Pu� essere modificato, purch� mi "
  108. Data "si citi nel programma finale risultante. Se si decide di utilizzarlo, s"
  109. Data "pedire 10.000 lire o 5 Euro al seguente nominativo ed indirizzo: Stefan"
  110. Data "o Regattin, piazza Pietro Gasparri 4/U, 20161 Milano, Italia. Buon dive"
  111. Data "rtimento, grazie e ciao!"
  112.  
  113. MESSAGGIO3$="Adventures Conceiver by Stefano Regattin"
  114.  
  115. PROLOGO$="L'avventura preimpostata ï¿½ dimostrativa. Non c'� uno scopo definito"
  116. PROLOGO$=PROLOGO$+". Gli altri personaggi prenderanno un'oggetto e cercherann"
  117. PROLOGO$=PROLOGO$+"o di usarlo su un personaggio presente dove si trovano, pe"
  118. PROLOGO$=PROLOGO$+"r cui anche sul tuo personaggio; dopo di ci� si muoveranno"
  119. PROLOGO$=PROLOGO$+". Usa tutti i comandi e guarda cosa succede."
  120.  
  121. _INTERFACCIA$="SIze 320,144;"
  122. _INTERFACCIA$=_INTERFACCIA$+"BAse ScreenWidth SizeX- 2/ ,ScreenHeight SizeY- 2/;"
  123. _INTERFACCIA$=_INTERFACCIA$+"INk 1,0,0;GraphicBox 0,0,SizeX 1-,SizeY 1-;"
  124. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'EsseErre Software Solutions';"
  125. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,8,0 VA,0,1;"
  126. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'presenta...';"
  127. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,16,0 VA,0,1;"
  128. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'* Adventures Conceiver 1.5 *';"
  129. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,32,0 VA,0,1;"
  130. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'by Stefano Regattin';"
  131. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,48,0 VA,0,1;"
  132. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'Se decidi di utilizzarlo, spedisci';"
  133. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,64,0 VA,0,1;"
  134. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'diecimila lire o cinque Euro';"
  135. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,80,0 VA,0,1;"
  136. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'al seguente indirizzo:';"
  137. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,96,0 VA,0,1;"
  138. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'piazza Pietro Gasparri, 4/U';"
  139. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,112,0 VA,0,1;"
  140. _INTERFACCIA$=_INTERFACCIA$+"SetVar 0,'20161 Milano - Italia';"
  141. _INTERFACCIA$=_INTERFACCIA$+"PrintOutline 0 VA CentreX,128,0 VA,0,1;"
  142. _INTERFACCIA$=_INTERFACCIA$+"RunUntil 0,%1111;EXit;"
  143.  
  144. BANCO=65535 : BANCOMODULO=1023 : NUMMASE=31 : NUMMASCO=255 : NUMMASL=255
  145. NUMMASO=255 : NUMMASP=255 : NUMMASR=255 : NUMMASS=255 : PESOS=1
  146. '----------------------------------------------------------------------------
  147. 'Per un difetto di AMOS Professional non si pu� assegnare un valore maggiore 
  148. ' di 1023 al banco di memoria da usare con il comando Track Load e Track Play
  149. '----------------------------------------------------------------------------- 
  150. Global EPILOGO$,FILE$,MESSAGGIO1$,MESSAGGIO3$,MERITI$,NOMEFILE$,PROLOGO$
  151. Global _INTERFACCIA$
  152. Global ANEMICI,BANCO,BANCOMODULO,CATEGORIADEGLIOGGETTI,CARATTEREMESSAGGIO
  153. Global COMPIUTAAZIONE,CONDIZIONEG,EDIFICIO,FILEREQUESTERMUSICA
  154. Global INEMICITISVEGLIANO,INEMICISVEGLIANOPERSONAGGIOP,LUOGO
  155. Global M0DOVISUALIZZAZIONETEMPO,M0DIFICA,NUMEROCO,NUMEROE,NUMEROL,NUMERON
  156. Global NUMEROO,NUMEROP,NUMEROR,NUMMASCO,NUMMASE,NUMMASL,NUMMASO,NUMMASP
  157. Global NUMMASR,NUMMASS,OGGETTO,OGGETTOUSANTE,OGGETTOUSATO,PERSONAGGIO
  158. Global PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO,PESOS,REGIONE,SENZAMEMORIA,STANZA
  159. Global TEMP0TRASCORSO,ULTIMALINEA,_MUSICA
  160. Dim CONDIZIONEG$(13),DESCRIZIONECO$(NUMMASCO),DESCRIZIONEE$(NUMMASE)
  161. Dim DESCRIZIONEL$(NUMMASL),DESCRIZIONEP$(NUMMASP)
  162. Dim DESCRIZIONES$(NUMMASS,NUMMASE),DREZIONE$(9),DREZIONEL$(9),FASEG$(6)
  163. Dim NOMEE$(NUMMASE),NOMEL$(NUMMASL),NOMEP$(NUMMASP),NOMEPCO$(NUMMASCO)
  164. Dim NOMEPN$(27),NOMEPRO$(NUMMASCO),NOMER$(NUMMASR),NOMES$(NUMMASS,NUMMASE)
  165. Dim NOMESCO$(NUMMASCO),NOMESN$(27),NOMESRO$(NUMMASCO),TESTOO$(1),TIPOL$(11)
  166. Dim AZIONEP(7,NUMMASP),CATEGORIAO(NUMMASO),CAMMINOP(NUMMASP)
  167. Dim C0STITUZIONEP(NUMMASP),DESTREZZAP(NUMMASP),DREZIONEL(9,NUMMASL)
  168. Dim DREZIONEPRESAP(NUMMASP),DREZIONEOPPOSTAAQUELLAPRESAP(NUMMASP)
  169. Dim DREZIONES(9,NUMMASS,NUMMASE),FINEA(7,NUMMASP),F0RZAP(NUMMASP)
  170. Dim INIZIOSONNOP(NUMMASP),LUOGODIDESTINAZIONEP(NUMMASP),NUMEROS(NUMMASE)
  171. Dim OGGETTODATOOLASCIATO(NUMMASCO),OGGETTODELPERSONAGGIO0(NUMMASCO)
  172. Dim OGGETTIDIA(NUMMASCO),OGGETTINELLUOGO(NUMMASCO),PARAAAZIONEP(7,NUMMASP)
  173. Dim PARABAZIONEP(7,NUMMASP),PARACAZIONEP(7,NUMMASP),PARATIPOCO(NUMMASCO)
  174. Dim PARATIPOL(11),PERSONAGGIOVISIBILEP(NUMMASP),PESOCO(NUMMASCO)
  175. Dim PESONETTOP(NUMMASP),PESOP(NUMMASP),PESORESTOCO(NUMMASCO)
  176. Dim POSIZIONEA(NUMMASP),POSIZIONEE(NUMMASL),POSIZIONEO(NUMMASO)
  177. Dim POSIZIONEP(NUMMASP),REGIONEL(NUMMASL),RESISTENZAP(NUMMASP)
  178. Dim RESTODELPERSONAGGIO0(NUMMASCO),RESTIDIA(NUMMASCO),RESTINELLUOGO(NUMMASCO)
  179. Dim SOLDIL(NUMMASL),SOLDIP(NUMMASP),SOLDIS(NUMMASS,NUMMASE)
  180. Dim SOLDIRICEVUTIP(NUMMASP),SONNOP(NUMMASP),TEMP0DIATTRAVERSAMENTOP(NUMMASP)
  181. Dim TESTOO(NUMMASO),TIPOCO(NUMMASCO),TIPOL(NUMMASL),TIPOO(NUMMASO)
  182. Dim TIPOP(NUMMASP)
  183. Global CONDIZIONEG$(),DESCRIZIONECO$(),DESCRIZIONEE$(),DESCRIZIONEL$()
  184. Global DESCRIZIONEP$(),DESCRIZIONES$(),DREZIONE$(),DREZIONEL$(),FASEG$()
  185. Global NOMEE$(),NOMEL$(),NOMEP$(),NOMEPCO$(),NOMEPN$(),NOMEPRO$(),NOMER$()
  186. Global NOMES$(),NOMESCO$(),NOMESN$(),NOMESRO$(),TESTOO$(),TIPOL$()
  187. Global AZIONEP(),CATEGORIAO(),CAMMINOP(),C0STITUZIONEP(),DESTREZZAP()
  188. Global DREZIONEL(),DREZIONEPRESAP(),DREZIONEOPPOSTAAQUELLAPRESAP(),DREZIONES()
  189. Global FINEA(),F0RZAP(),INIZIOSONNOP(),LUOGODIDESTINAZIONEP(),NUMEROS()
  190. Global OGGETTODATOOLASCIATO(),OGGETTODELPERSONAGGIO0(),OGGETTIDIA()
  191. Global OGGETTINELLUOGO(),PARAAAZIONEP(),PARABAZIONEP(),PARACAZIONEP()
  192. Global PARATIPOCO(),PARATIPOL(),PERSONAGGIOVISIBILEP(),PESOCO(),PESONETTOP()
  193. Global PESOP(),PESORESTOCO(),POSIZIONEA(),POSIZIONEE(),POSIZIONEO()
  194. Global POSIZIONEP(),REGIONEL(),RESISTENZAP(),RESTODELPERSONAGGIO0(),RESTIDIA()
  195. Global RESTINELLUOGO(),SOLDIL(),SOLDIP(),SOLDIS(),SOLDIRICEVUTIP(),SONNOP()
  196. Global TEMP0DIATTRAVERSAMENTOP(),TESTOO(),TIPOCO(),TIPOL(),TIPOO(),TIPOP()
  197. Proc SETTASCHERMO
  198. Proc ARCOBALENO
  199. For A=0 To 6
  200.  Read DATO$ : FASEG$(A)=DATO$
  201. Next A
  202. For A=0 To 13
  203.  Read DATO$ : CONDIZIONEG$(A)=DATO$
  204. Next A
  205. For A=0 To 9
  206.  Read DATO$ : DREZIONEL$(A)=DATO$
  207.  Read DATO$ : DREZIONE$(A)=DATO$
  208. Next A
  209. Proc INIZIALIZZALEVARIABILI
  210. NUMEROCO=20 : NUMEROE=0 : NUMEROL=127 : NUMEROO=127 : NUMEROP=20 : NUMEROR=1
  211. NUMEROS(0)=0
  212. Proc _ORDINALUOGHI[127,8,0,True]
  213. For A=0 To NUMEROCO
  214.  Read DATO$ : NOMESCO$(A)=DATO$
  215.  Read DATO$ : NOMEPCO$(A)=DATO$
  216.  Read DATO : PESOCO(A)=DATO
  217.  Read DATO$ : NOMESRO$(A)=DATO$
  218.  Read DATO$ : NOMEPRO$(A)=DATO$
  219.  Read DATO : PESORESTOCO(A)=DATO
  220.  Read DATO : TIPOCO(A)=DATO
  221.  Read DATO : PARATIPOCO(A)=DATO
  222. Next A
  223. If NUMEROE>-1
  224.  For A=0 To NUMEROE
  225.   POSIZIONEE(A)=Rnd(NUMEROL)
  226.   For B=0 To NUMEROS(A)
  227.    SOLDIS(B,A)=Rnd(19)
  228.   Next B
  229.  Next A
  230. End If 
  231. For A=0 To 27
  232.  Read DATO$ : NOMESN$(A)=DATO$
  233.  Read DATO$ : NOMEPN$(A)=DATO$
  234. Next A
  235. For A=0 To 11
  236.  Read DATO$ : TIPOL$(A)=DATO$
  237.  Read DATO : PARATIPOL(A)=DATO
  238. Next A
  239. Randomize Timer
  240. For A=0 To NUMEROL
  241.  TIPOL(A)=Rnd(11)
  242.  SOLDIL(A)=Rnd(1)
  243. Next A
  244. For A=0 To NUMEROO
  245.  CATEGORIAO(A)=Rnd(NUMEROCO)
  246.  POSIZIONEO(A)=Rnd(NUMEROL)
  247. Next A
  248. For A=0 To NUMEROP
  249.  C0STITUZIONEP(A)=Rnd(99)+1
  250.  DESTREZZAP(A)=Rnd(99)+1
  251.  F0RZAP(A)=Rnd(99)+1
  252.  PESOP(A)=Rnd(70)+50
  253.  POSIZIONEP(A)=Rnd(NUMEROL)
  254.  LUOGODIDESTINAZIONEP(A)=-1
  255.  DREZIONEPRESAP(A)=-1
  256.  DREZIONEOPPOSTAAQUELLAPRESAP(A)=0
  257.  RESISTENZAP(A)=C0STITUZIONEP(A)
  258.  DATO=Rnd(1) : If DATO=1 Then Bset 1,TIPOP(A) Else Bclr 1,TIPOP(A)
  259.  DATO=Rnd(1) : If DATO=1 Then Bset 3,TIPOP(A) Else Bclr 3,TIPOP(A)
  260.  DATO=Rnd(9)+1
  261.  SOLDIP(A)=DATO
  262.  Add PESONETTOP(A),DATO*PESOS
  263.  If A>0
  264.   INIZIOSONNOP(A)=Rnd(360)+1080
  265.   AZIONEP(0,A)=17
  266.   PARAAAZIONEP(0,A)=1
  267.   AZIONEP(1,A)=27
  268.   PARAAAZIONEP(1,A)=256
  269.   AZIONEP(2,A)=27
  270.   PARAAAZIONEP(2,A)=256
  271.   AZIONEP(3,A)=27
  272.   PARAAAZIONEP(3,A)=256
  273.   AZIONEP(4,A)=27
  274.   PARAAAZIONEP(4,A)=256
  275.   AZIONEP(5,A)=27
  276.   PARAAAZIONEP(5,A)=256
  277.   AZIONEP(6,A)=27
  278.   PARAAAZIONEP(6,A)=256
  279.   AZIONEP(7,A)=16
  280.  End If 
  281. Next A
  282. '----------------
  283. 'Scopo del gioco 
  284. AZIONEP(7,0)=0
  285. '------------
  286. 'PARametro A 
  287. PARAAAZIONEP(7,0)=0
  288. '------------
  289. 'PARametro B 
  290. PARABAZIONEP(7,0)=0
  291. '------------
  292. 'PARametro C 
  293. PARACAZIONEP(7,0)=0
  294. '------------------- 
  295. For A=64 To 127
  296.  REGIONEL(A)=1
  297. Next A
  298. Read DATO$ : MERITI$=DATO$
  299. Read DATO$ : MERITI$=MERITI$+DATO$
  300. Read DATO$ : MERITI$=MERITI$+DATO$
  301. Read DATO$ : MERITI$=MERITI$+DATO$
  302. Read DATO$ : MERITI$=MERITI$+DATO$
  303. Read DATO$ : MERITI$=MERITI$+DATO$
  304. TESTOO$(0)=MERITI$
  305. If _MUSICA=True Then Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  306. TASTOPREMUTO$="d"
  307. Repeat 
  308.  If TASTOPREMUTO$="d" Then Proc MOSTRAILDESTINODELGIOCO
  309.  If TASTOPREMUTO$="e" Then Proc MOSTRAGLIEDIFICI
  310.  If TASTOPREMUTO$="i" and NUMEROE>-1 Then Proc MOSTRALESTANZE
  311.  If TASTOPREMUTO$="k" Then Proc MOSTRALECATEGORIEDEGLIOGGETTI
  312.  If TASTOPREMUTO$="l" Then Proc MOSTRAILUOGHI
  313.  If TASTOPREMUTO$="o" Then Proc MOSTRAGLIOGGETTI
  314.  If TASTOPREMUTO$="p" Then Proc MOSTRAIPERSONAGGI
  315.  If TASTOPREMUTO$="r" Then Proc MOSTRALEREGIONI
  316. Until TASTOPREMUTO$=Chr$(27)
  317. Track Loop Of : Track Stop : Rainbow Del 0 : Screen Close 0
  318. Erase BANCOMODULO : End 
  319. Procedure ARCOBALENO
  320.  Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  321.  Data $FFF,$EEE,$DDD,$CCC,$BBB,$AAA,$999,$888
  322.  Set Rainbow 0,1,16,"","",""
  323.  For LINEA=0 To 15 : Read DATO : Rain(0,LINEA)=DATO : Next LINEA
  324.  If Ntsc Then LUNGHEZZAARCOBALENO=223 Else LUNGHEZZAARCOBALENO=271
  325.  Rainbow 0,2,0,LUNGHEZZAARCOBALENO
  326. End Proc
  327. Procedure _ASPETTA
  328.  Wait 200
  329. End Proc
  330. Procedure AZIONIALTRIPERSONAGGI
  331.  While COMPIUTAAZIONE>0
  332.   For P=1 To NUMEROP
  333.    If RESISTENZAP(P)>0
  334.     If Btst(2,TIPOP(P))=False
  335.      Proc FAIDORMIREGLIALTRIPERSONAGGI[P]
  336.      If AZIONEP(POSIZIONEA(P),P)>0
  337.       If AZIONEP(POSIZIONEA(P),P)=1
  338.        If FINEA(POSIZIONEA(P),P)=False
  339.         Proc DAIAPAO[POSIZIONEA(P),P]
  340.        End If 
  341.       Else If AZIONEP(POSIZIONEA(P),P)=2
  342.        If FINEA(POSIZIONEA(P),P)=False
  343.         Proc DAIAPAOB[POSIZIONEA(P),P]
  344.        End If 
  345.       Else If AZIONEP(POSIZIONEA(P),P)=3
  346.        If FINEA(POSIZIONEA(P),P)=False
  347.         Proc DAIAPAOTB[POSIZIONEA(P),P]
  348.        End If 
  349.       Else If AZIONEP(POSIZIONEA(P),P)=4
  350.        If FINEA(POSIZIONEA(P),P)=False
  351.         Proc DAIAPAP[POSIZIONEA(P),P]
  352.        End If 
  353.       Else If AZIONEP(POSIZIONEA(P),P)=5
  354.        If FINEA(POSIZIONEA(P),P)=False
  355.         Proc DAIAPPA[POSIZIONEA(P),P]
  356.        End If 
  357.       Else If AZIONEP(POSIZIONEA(P),P)=6
  358.        If FINEA(POSIZIONEA(P),P)=False
  359.         Proc DAIAPABO[POSIZIONEA(P),P]
  360.        End If 
  361.       Else If AZIONEP(POSIZIONEA(P),P)=7
  362.        If FINEA(POSIZIONEA(P),P)=False
  363.         Proc DAIAPABOC[POSIZIONEA(P),P]
  364.        End If 
  365.       Else If AZIONEP(POSIZIONEA(P),P)=8
  366.        If FINEA(POSIZIONEA(P),P)=False
  367.         Proc DAIAPABOTC[POSIZIONEA(P),P]
  368.        End If 
  369.       Else If AZIONEP(POSIZIONEA(P),P)=9
  370.        If FINEA(POSIZIONEA(P),P)=False
  371.         Proc DAIAPABP[POSIZIONEA(P),P]
  372.        End If 
  373.       Else If AZIONEP(POSIZIONEA(P),P)=10
  374.        If FINEA(POSIZIONEA(P),P)=False
  375.         Proc DAIAPAPB[POSIZIONEA(P),P]
  376.        End If 
  377.        '    ------------------------------------  
  378.       Else If AZIONEP(POSIZIONEA(P),P)=11
  379.        If FINEA(POSIZIONEA(P),P)=False
  380.         Proc LASCIAAO[POSIZIONEA(P),P]
  381.        End If 
  382.       Else If AZIONEP(POSIZIONEA(P),P)=12
  383.        If FINEA(POSIZIONEA(P),P)=False
  384.         Proc LASCIAAOB[POSIZIONEA(P),P]
  385.        End If 
  386.       Else If AZIONEP(POSIZIONEA(P),P)=13
  387.        If FINEA(POSIZIONEA(P),P)=False
  388.         Proc LASCIAAOTB[POSIZIONEA(P),P]
  389.        End If 
  390.       Else If AZIONEP(POSIZIONEA(P),P)=14
  391.        If FINEA(POSIZIONEA(P),P)=False
  392.         Proc LASCIAAP[POSIZIONEA(P),P]
  393.        End If 
  394.       Else If AZIONEP(POSIZIONEA(P),P)=15
  395.        If FINEA(POSIZIONEA(P),P)=False
  396.         Proc LASCIAPA[POSIZIONEA(P),P]
  397.        End If 
  398.        '    ------------------------------------  
  399.       Else If AZIONEP(POSIZIONEA(P),P)=16
  400.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  401.         Proc MUOVITIP[POSIZIONEA(P),P]
  402.        End If 
  403.        '    ------------------------------------  
  404.       Else If AZIONEP(POSIZIONEA(P),P)=17
  405.        If FINEA(POSIZIONEA(P),P)=False
  406.         Proc PRENDIAO[POSIZIONEA(P),P]
  407.        End If 
  408.       Else If AZIONEP(POSIZIONEA(P),P)=18
  409.        If FINEA(POSIZIONEA(P),P)=False
  410.         Proc PRENDIAOB[POSIZIONEA(P),P]
  411.        End If 
  412.       Else If AZIONEP(POSIZIONEA(P),P)=19
  413.        If FINEA(POSIZIONEA(P),P)=False
  414.         Proc PRENDIAOTB[POSIZIONEA(P),P]
  415.        End If 
  416.       Else If AZIONEP(POSIZIONEA(P),P)=20
  417.        If FINEA(POSIZIONEA(P),P)=False
  418.         Proc PRENDIAP[POSIZIONEA(P),P]
  419.        End If 
  420.       Else If AZIONEP(POSIZIONEA(P),P)=21
  421.        If FINEA(POSIZIONEA(P),P)=False
  422.         Proc PRENDIPA[POSIZIONEA(P),P]
  423.        End If 
  424.        '    ------------------------------------  
  425.       Else If AZIONEP(POSIZIONEA(P),P)=22
  426.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  427.         Proc SEGUI[POSIZIONEA(P),P]
  428.        End If 
  429.       Else If AZIONEP(POSIZIONEA(P),P)=23
  430.        If FINEA(POSIZIONEA(P),P)=False and POSIZIONEP(P)>-1
  431.         Proc SEGUIPA[POSIZIONEA(P),P]
  432.        End If 
  433.        '    ------------------------------------  
  434.       Else If AZIONEP(POSIZIONEA(P),P)=24
  435.        If FINEA(POSIZIONEA(P),P)=False
  436.         Proc USAUNOSUAO[POSIZIONEA(P),P]
  437.        End If 
  438.       Else If AZIONEP(POSIZIONEA(P),P)=25
  439.        If FINEA(POSIZIONEA(P),P)=False
  440.         Proc USAUNOSUAOB[POSIZIONEA(P),P]
  441.        End If 
  442.       Else If AZIONEP(POSIZIONEA(P),P)=26
  443.        If FINEA(POSIZIONEA(P),P)=False
  444.         Proc USAUNOSUAOTB[POSIZIONEA(P),P]
  445.        End If 
  446.       Else If AZIONEP(POSIZIONEA(P),P)=27
  447.        If FINEA(POSIZIONEA(P),P)=False
  448.         Proc USAUNOSUAP[POSIZIONEA(P),P]
  449.        End If 
  450.       Else If AZIONEP(POSIZIONEA(P),P)=28
  451.        If FINEA(POSIZIONEA(P),P)=False
  452.         Proc USAUNOSUPA[POSIZIONEA(P),P]
  453.        End If 
  454.       Else If AZIONEP(POSIZIONEA(P),P)=29
  455.        If FINEA(POSIZIONEA(P),P)=False
  456.         Proc USAUNOASUBO[POSIZIONEA(P),P]
  457.        End If 
  458.       Else If AZIONEP(POSIZIONEA(P),P)=30
  459.        If FINEA(POSIZIONEA(P),P)=False
  460.         Proc USAUNOASUBOC[POSIZIONEA(P),P]
  461.        End If 
  462.       Else If AZIONEP(POSIZIONEA(P),P)=31
  463.        If FINEA(POSIZIONEA(P),P)=False
  464.         Proc USAUNOASUBOTC[POSIZIONEA(P),P]
  465.        End If 
  466.       Else If AZIONEP(POSIZIONEA(P),P)=32
  467.        If FINEA(POSIZIONEA(P),P)=False
  468.         Proc USAUNOASUBP[POSIZIONEA(P),P]
  469.        End If 
  470.       Else If AZIONEP(POSIZIONEA(P),P)=33
  471.        If FINEA(POSIZIONEA(P),P)=False
  472.         Proc USAUNOASUPB[POSIZIONEA(P),P]
  473.        End If 
  474.       Else If AZIONEP(POSIZIONEA(P),P)=34
  475.        If FINEA(POSIZIONEA(P),P)=False
  476.         Proc USAUNOTASUBO[POSIZIONEA(P),P]
  477.        End If 
  478.       Else If AZIONEP(POSIZIONEA(P),P)=35
  479.        If FINEA(POSIZIONEA(P),P)=False
  480.         Proc USAUNOTASUBOC[POSIZIONEA(P),P]
  481.        End If 
  482.       Else If AZIONEP(POSIZIONEA(P),P)=36
  483.        If FINEA(POSIZIONEA(P),P)=False
  484.         Proc USAUNOTASUBOTC[POSIZIONEA(P),P]
  485.        End If 
  486.       Else If AZIONEP(POSIZIONEA(P),P)=37
  487.        If FINEA(POSIZIONEA(P),P)=False
  488.         Proc USAUNOTASUBP[POSIZIONEA(P),P]
  489.        End If 
  490.       Else If AZIONEP(POSIZIONEA(P),P)=38
  491.        If FINEA(POSIZIONEA(P),P)=False
  492.         Proc USAUNOTASUPB[POSIZIONEA(P),P]
  493.        End If 
  494.        '    ------------------------------------  
  495.       Else If AZIONEP(POSIZIONEA(P),P)=39
  496.        If FINEA(POSIZIONEA(P),P)=False
  497.         Proc USATIUNO[POSIZIONEA(P),P]
  498.        End If 
  499.       Else If AZIONEP(POSIZIONEA(P),P)=40
  500.        If FINEA(POSIZIONEA(P),P)=False
  501.         Proc USATIUNOA[POSIZIONEA(P),P]
  502.        End If 
  503.       Else If AZIONEP(POSIZIONEA(P),P)=41
  504.        If FINEA(POSIZIONEA(P),P)=False
  505.         Proc USATIUNOTA[POSIZIONEA(P),P]
  506.        End If 
  507.       End If 
  508.      End If 
  509.      Add POSIZIONEA(P),1,0 To 7
  510.     Else 
  511.      Dec SONNOP(P)
  512.      If SONNOP(P)=0
  513.       Bclr 2,TIPOP(P)
  514.      End If 
  515.     End If 
  516.    End If 
  517.   Next P
  518.   P=Rnd(NUMEROP-1)+1
  519.   PERSONAGGIOPSITROVADENTROUNEDIFICIO=POSIZIONEP(P)/$10000
  520.   If ANEMICI=True and PERSONAGGIOPSITROVADENTROUNEDIFICIO=0
  521.    NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  522.    NEMICI=Max(NEMICI,0)
  523.    If NEMICI=0
  524.     If Btst(2,TIPOP(P))=True
  525.      Bclr 2,TIPOP(P) : INEMICISVEGLIANOPERSONAGGIOP=True
  526.      Proc NEMICI[P]
  527.     Else 
  528.      INEMICISVEGLIANOPERSONAGGIOP=False
  529.      Proc NEMICI[P]
  530.     End If 
  531.    End If 
  532.   End If 
  533.   Dec COMPIUTAAZIONE
  534.  Wend 
  535. End Proc
  536. Procedure CARATTERISTICHE
  537.  Cls 
  538.  Print "Caratteristiche di ";NOMEP$(0);">"
  539.  Print "Costituzione "; Using "##### ";C0STITUZIONEP(0);
  540.  If C0STITUZIONEP(0)=1 Then Print "punto" Else Print "punti"
  541.  Print "Destrezza    "; Using "##### ";DESTREZZAP(0);
  542.  If DESTREZZAP(0)=1 Then Print "punto" Else Print "punti"
  543.  Print "Forza        "; Using "##### ";F0RZAP(0);
  544.  If F0RZAP(0)=1 Then Print "punto" Else Print "punti"
  545.  Print "Peso         "; Using "##### ";PESOP(0);
  546.  If PESOP(0)=1 Then Print "chilo" Else Print "chili"
  547.  Print "Resistenza   "; Using "##### ";RESISTENZAP(0);
  548.  If RESISTENZAP(0)=1 Then Print "punto" Else Print "punti"
  549.  Print "Sesso ";
  550.  If Btst(1,TIPOP(0))=True Then Print "femminile" Else Print "maschile"
  551.  For A=0 To NUMEROO
  552.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  553.    If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  554.     Print NOMEP$(0);" indossa 1 ";NOMESCO$(CATEGORIAO(A))
  555.     Exit 
  556.    End If 
  557.   End If 
  558.  Next A
  559.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  560. End Proc
  561. Procedure CARICAUNFILE
  562.  Show On : Cls 
  563.  FILE$=Fsel$("*.Adv",NOMEFILE$,"Carica un file","di Adventures Conceiver")
  564.  If Exist(FILE$)
  565.   Open In 1,FILE$
  566.   MARCATORE$=Input$(1,21)
  567.   LUNGHEZZABANCO=Lof(1)
  568.   Close 1
  569.   MEMORIA=Chip Free+Fast Free
  570.   If LUNGHEZZABANCO>MEMORIA
  571.    Proc TIC["Non c'� memoria sufficiente per caricare il file",ULTIMALINEA-1]
  572.    Proc TIC[FILE$,ULTIMALINEA] : Proc _ASPETTA
  573.   Else 
  574.    SEPARATORE=Instr(FILE$,":") : POSIZIONE=1
  575.    For A=1 To Len(FILE$)
  576.     If Instr(FILE$,"/",POSIZIONE)>0
  577.      SEPARATORECASSETTO=Instr(FILE$,"/",POSIZIONE)
  578.      POSIZIONE=SEPARATORECASSETTO+1
  579.     End If 
  580.    Next A
  581.    SEPARATORE=Max(SEPARATORE,SEPARATORECASSETTO)
  582.    PERCORSO$=Left$(FILE$,SEPARATORE)
  583.    If Right$(PERCORSO$,1)="/"
  584.     PERCORSO$=Left$(PERCORSO$,Len(PERCORSO$)-1)
  585.    End If 
  586.    NOMEFILE$=Right$(FILE$,Len(FILE$)-SEPARATORE)
  587.    If MARCATORE$="Adventures Conceiver"+Chr$(10)
  588.     Reserve As Work BANCO,LUNGHEZZABANCO
  589.     Bload FILE$,Start(BANCO)
  590.     MESSAGGIO1$="* "+NOMEFILE$+Str$(LUNGHEZZABANCO)+" Byte *"
  591.    Else 
  592.     Proc TIC[NOMEFILE$,ULTIMALINEA-1]
  593.     Proc TIC["Non ï¿½ un file di Adventures Conceiver",ULTIMALINEA] : Proc _ASPETTA
  594.    End If 
  595.   End If 
  596.  End If 
  597.  Hide On 
  598. End Proc
  599. Procedure CONDIZIONEDELGIORNO
  600.  Print "Descrizione giornata>";
  601.  If CONDIZIONEG=0
  602.   M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  603.   If M1NUTI<60 : Rem dalle 0:00 alle 0:59 
  604.    Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  605.   Else If M1NUTI>59 and M1NUTI<300 : Rem dalle 1:00 alle 4:59 
  606.    Print CONDIZIONEG$(7) : Rem La luna sta calando  
  607.   Else If M1NUTI>299 and M1NUTI<360 : Rem dalle 5:00 alle 5:59 
  608.    Print CONDIZIONEG$(0) : Rem Il cielo si sta schiarendo 
  609.   Else If M1NUTI>359 and M1NUTI<600 : Rem dalle 6:00 alle 9:59 
  610.    Print CONDIZIONEG$(1) : Rem Il sole si sta alzando 
  611.   Else If M1NUTI>599 and M1NUTI<900 : Rem dalle 10:00 alle 14:59   
  612.    Print CONDIZIONEG$(2) : Rem Il sole ï¿½ alto 
  613.   Else If M1NUTI>899 and M1NUTI<1140 : Rem dalle 15:00 alle 18:59   
  614.    Print CONDIZIONEG$(3) : Rem Il sole sta calando
  615.   Else If M1NUTI>1139 and M1NUTI<1200 : Rem dalle 19:00 alle 19:59 
  616.    Print CONDIZIONEG$(4) : Rem Il cielo si sta oscurando
  617.   Else If M1NUTI>1199 and M1NUTI<1380 : Rem dalle 20:00 alle 22:59 
  618.    Print CONDIZIONEG$(5) : Rem La luna si sta alzando 
  619.   Else : Rem dalle 23:00 alle 23:59 
  620.    Print CONDIZIONEG$(6) : Rem La luna ï¿½ alta 
  621.   End If 
  622.  Else If CONDIZIONEG=1
  623.   Print CONDIZIONEG$(8) : Rem E' nuvoloso
  624.  Else If CONDIZIONEG=2
  625.   Print CONDIZIONEG$(9) : Rem Sta piovendo 
  626.  Else If CONDIZIONEG=3
  627.   Print CONDIZIONEG$(10) : Rem Sta nevicando  
  628.  Else If CONDIZIONEG=4
  629.   Print CONDIZIONEG$(11) : Rem Sta grandinando  
  630.  Else If CONDIZIONEG=5
  631.   Print CONDIZIONEG$(12) : Rem C'� la nebbia
  632.  Else If CONDIZIONEG=6
  633.   Print CONDIZIONEG$(13) : Rem E' buio  
  634.  End If 
  635. End Proc
  636. Procedure CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  637.  SCOPODELGIOCO=AZIONEP(7,0)
  638.  PARA=PARAAAZIONEP(7,0)
  639.  PARB=PARABAZIONEP(7,0)
  640.  PARC=PARACAZIONEP(7,0)
  641.  If SCOPODELGIOCO=0
  642.   Pop Proc
  643.  Else If SCOPODELGIOCO=1
  644.   'Dai al personaggio PARA PARB oggetti PARC 
  645.   OGGETTIDIA(PARC)=0
  646.   If OGGETTODATOOLASCIATO(PARC)=PARB
  647.    For A=0 To NUMEROO
  648.     If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  649.      If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  650.       Inc OGGETTIDIA(CATEGORIAO(A))
  651.      End If 
  652.     End If 
  653.    Next A
  654.    If OGGETTIDIA(PARC)=PARB
  655.     FINEA(7,0)=True
  656.    End If 
  657.   End If 
  658.  Else If SCOPODELGIOCO=2
  659.   'Dai al personaggio PARA PARB oggetti tipo PARC  
  660.   For A=0 To NUMEROO
  661.    If POSIZIONEO(A)=-1-PARA and Btst(0,TIPOO(A))=True
  662.     If TIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  663.      Inc TIPODIOGGETTOPARC
  664.     End If 
  665.    End If 
  666.   Next A
  667.   If TIPODIOGGETTOPARC=PARB
  668.    FINEA(7,0)=True
  669.   End If 
  670.  Else If SCOPODELGIOCO=3
  671.   'Dai a PARA PARB soldi 
  672.   If SOLDIRICEVUTIP(PARA)=PARB
  673.    FINEA(7,0)=True
  674.   End If 
  675.  Else If SCOPODELGIOCO=4
  676.   'Guadagna PARA soldi 
  677.   If SOLDIP(0)>=PARA
  678.    FINEA(7,0)=True
  679.   End If 
  680.  Else If SCOPODELGIOCO=5
  681.   'Lascia nel luogo PARA PARB oggetti PARC 
  682.   OGGETTIDIA(PARC)=0
  683.   For A=0 To NUMEROO
  684.    If POSIZIONEO(A)=PARA
  685.     If CATEGORIAO(A)=PARC and Btst(1,TIPOO(A))=False
  686.      Inc OGGETTIDIA(PARC)
  687.     End If 
  688.    End If 
  689.   Next A
  690.   If OGGETTIDIA(PARC)>=PARB
  691.    FINEA(7,0)=True
  692.   End If 
  693.  Else If SCOPODELGIOCO=6
  694.   'Lascia nel luogo PARA PARB oggetti tipo PARC  
  695.   For A=0 To NUMEROO
  696.    If POSIZIONEO(A)=PARA
  697.     If PARATIPOCO(CATEGORIAO(A))=PARC and Btst(1,TIPOO(A))=False
  698.      Inc OGGETTODELTIPOPARC
  699.     End If 
  700.    End If 
  701.   Next A
  702.   If OGGETTODELTIPOPARC>=PARB
  703.    FINEA(7,0)=True
  704.   End If 
  705.  Else If SCOPODELGIOCO=7
  706.   'Lascia nel luogo PARA PARB soldi
  707.   If SOLDIL(PARA)>=PARB
  708.    FINEA(7,0)=True
  709.   End If 
  710.  Else If SCOPODELGIOCO=8
  711.   'Prendi PARA oggetti PARB
  712.   If OGGETTODELPERSONAGGIO0(PARB)=PARA
  713.    FINEA(7,0)=True
  714.   End If 
  715.  Else If SCOPODELGIOCO=9
  716.   'Prendi  PARA oggetti tipo PARB
  717.   For A=0 To NUMEROO
  718.    If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  719.     If TIPOCO(CATEGORIAO(A))=PARB and Btst(1,TIPOO(A))=False
  720.      Inc TIPODIOGGETTOPARB
  721.     End If 
  722.    End If 
  723.   Next A
  724.   If TIPODIOGGETTOPARB=PARA
  725.    FINEA(7,0)=True
  726.   End If 
  727.  Else If SCOPODELGIOCO=10
  728.   'Trova il personaggio PARA 
  729.   Proc PERSONAGGIOVISIBILE[PARA]
  730.   If PERSONAGGIOVISIBILEP(PARA)=True
  731.    FINEA(7,0)=True
  732.   End If 
  733.  Else If SCOPODELGIOCO=11
  734.   'Uccidi il personaggio PARA  
  735.   If RESISTENZAP(PARA)=0
  736.    FINEA(7,0)=True
  737.   End If 
  738.  Else If SCOPODELGIOCO=12
  739.   'Usa 1 oggetto PARA su 1 oggetto PARB
  740.   If CATEGORIAO(OGGETTOUSANTE)=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  741.    FINEA(7,0)=True
  742.   End If 
  743.  Else If SCOPODELGIOCO=13
  744.   'Usa 1 oggetto PARA su 1 oggetto tipo PARB 
  745.   If CATEGORIAO(OGGETTOUSANTE)=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  746.    FINEA(7,0)=True
  747.   End If 
  748.  Else If SCOPODELGIOCO=14
  749.   'Usa 1 oggetto PARA su PARB
  750.   If CATEGORIAO(OGGETTOUSANTE)=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  751.    FINEA(7,0)=True
  752.   End If 
  753.  Else If SCOPODELGIOCO=15
  754.   'Usa 1 oggetto tipo PARA su 1 oggetto PARB 
  755.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and CATEGORIAO(OGGETTOUSATO)=PARB
  756.    FINEA(7,0)=True
  757.   End If 
  758.  Else If SCOPODELGIOCO=16
  759.   'Usa 1 oggetto tipo PARA su un oggetto tipo PARB 
  760.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PARATIPOCO(CATEGORIAO(OGGETTOUSATO))=PARB
  761.    FINEA(7,0)=True
  762.   End If 
  763.  Else If SCOPODELGIOCO=17
  764.   'Usa 1 oggetto tipo PARA su PARB 
  765.   If PARATIPOCO(CATEGORIAO(OGGETTOUSANTE))=PARA and PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=PARB
  766.    FINEA(7,0)=True
  767.   End If 
  768.  Else If SCOPODELGIOCO=18
  769.   'Vai nel luogo PARA
  770.   If POSIZIONEP(0)=PARA and TEMP0DIATTRAVERSAMENTOP(0)=0
  771.    FINEA(7,0)=True
  772.   End If 
  773.  End If 
  774. End Proc
  775. Procedure CREAMAPPA
  776.  Cls 
  777.  Print At(0,ULTIMALINEA);"Vuoi creare una mappa dei luoghi o delle stanze (l/s) ?"
  778.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  779.  If RISPOSTA$="l"
  780.   Repeat 
  781.    Locate 0,ULTIMALINEA : Input "Larghezza della mappa in luoghi (>2)>";LARGHEZZADELLAMAPPA$;
  782.    If LARGHEZZADELLAMAPPA$<>""
  783.     LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  784.     If LARGHEZZADELLAMAPPA<3
  785.      TIC["La larghezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  786.      Proc _ASPETTA
  787.     End If 
  788.    End If 
  789.   Until LARGHEZZADELLAMAPPA>2
  790.   Repeat 
  791.    Locate 0,ULTIMALINEA : Cline 
  792.    Input "Altezza della mappa in luoghi (>2)>";ALTEZZADELLAMAPPA$;
  793.    If ALTEZZADELLAMAPPA$<>""
  794.     ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  795.     If ALTEZZADELLAMAPPA<3
  796.      TIC["L'altezza deve essere almeno di tre luoghi!",ULTIMALINEA]
  797.      Proc _ASPETTA
  798.     End If 
  799.    End If 
  800.   Until ALTEZZADELLAMAPPA>2
  801.   Repeat 
  802.    Locate 0,ULTIMALINEA : Cline 
  803.    Input "Luogo di partenza della mappa (>=0)>";LUOGODIPARTENZADELLAMAPPA$;
  804.    If LUOGODIAPRTENZADELLAMAPPA$<>""
  805.     LUOGODIPARTENZADELLAMAPPA=Val(LUOGODIPARTENZADELLAMAPPA$)
  806.     If LUOGODIAPRTENZADELLAMAPPA<0
  807.      TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  808.      Proc _ASPETTA
  809.     End If 
  810.    End If 
  811.   Until LUOGODIPARTENZADELLAMAPPA>=0
  812.   NUMEROLUOGHI=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  813.   If LUOGODIPARTENZADELLAMAPPA+NUMEROLUOGHI-1>NUMEROL
  814.    TIC["Numero dei luoghi disponibili uguale a"+Str$(NUMEROL+1)+"!",ULTIMALINEA]
  815.    Proc _ASPETTA
  816.   Else 
  817.    Locate 0,ULTIMALINEA : Cline : Print "Vuoi che i luoghi siano delimitati (s/n) ?"
  818.    RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  819.    If RISPOSTA$="s"
  820.     LIMITI=True
  821.    Else 
  822.     LIMITI=False
  823.    End If 
  824.    TIC["Sto creando la mappa dei luoghi...",ULTIMALINEA]
  825.    Proc _ASPETTA
  826.    Proc _ORDINALUOGHI[NUMEROLUOGHI-1,LARGHEZZADELLAMAPPA,LUOGODIPARTENZADELLLAMAPPA,LIMITI]
  827.   End If 
  828.  Else If RISPOSTA$="s"
  829.   If NUMEROE=-1
  830.    Locate 0,ULTIMALINEA : Cline : Print "Non ci sono Edifici!"
  831.    Proc _ASPETTA : Pop Proc
  832.   Else If NUMEROE>0
  833.    Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  834.    If NUMEROEDIFICIO$<>""
  835.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  836.     Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  837.    End If 
  838.   End If 
  839.   Repeat 
  840.    Locate 0,ULTIMALINEA : Input "Larghezza della mappa in stanze (>2)>";LARGHEZZADELLAMAPPA$;
  841.    If LARGHEZZADELLAMAPPA$<>""
  842.     LARGHEZZADELLAMAPPA=Val(LARGHEZZADELLAMAPPA$)
  843.     If LARGHEZZADELLAMAPPA<3
  844.      TIC["La larghezza deve essere almeno di tre stanze!",ULTIMALINEA]
  845.      Proc _ASPETTA
  846.     End If 
  847.    End If 
  848.   Until LARGHEZZADELLAMAPPA>2
  849.   Repeat 
  850.    Locate 0,ULTIMALINEA : Cline 
  851.    Input "Altezza della mappa in stanze (>2)>";ALTEZZADELLAMAPPA$;
  852.    If ALTEZZADELLAMAPPA$<>""
  853.     ALTEZZADELLAMAPPA=Val(ALTEZZADELLAMAPPA$)
  854.     If ALTEZZADELLAMAPPA<3
  855.      TIC["L'altezza deve essere almeno di tre stanze!",ULTIMALINEA]
  856.      Proc _ASPETTA
  857.     End If 
  858.    End If 
  859.   Until ALTEZZADELLAMAPPA>2
  860.   Repeat 
  861.    Locate 0,ULTIMALINEA : Cline 
  862.    Input "Stanza di partenza della mappa (>=0)>";STANZADIPARTENZADELLAMAPPA$;
  863.    If STANZADIAPRTENZADELLAMAPPA$<>""
  864.     STANZADIPARTENZADELLAMAPPA=Val(STANZADIPARTENZADELLAMAPPA$)
  865.     If STANZADIAPRTENZADELLAMAPPA<0
  866.      TIC["devi indicare un valore uguale o maggiore di zero!",ULTIMALINEA]
  867.      Proc _ASPETTA
  868.     End If 
  869.    End If 
  870.   Until STANZADIPARTENZADELLAMAPPA>=0
  871.   NUMEROSTANZE=LARGHEZZADELLAMAPPA*ALTEZZADELLAMAPPA
  872.   If STANZADIPARTENZADELLAMAPPA+NUMEROSTANZE-1>NUMEROS(NUMEROEDIFICIO)
  873.    TIC["Numero delle stanze disponibili uguale a"+Str$(NUMEROS(NUMEROEDIFICIO)+1)+"!",ULTIMALINEA]
  874.    Proc _ASPETTA
  875.   Else 
  876.    TIC["Sto creando la mappa delle stanze...",ULTIMALINEA]
  877.    Proc _ASPETTA
  878.    Proc _ORDINASTANZE[NUMEROEDIFICIO,NUMEROSTANZE-1,LARGHEZZADELLAMAPPA,STANZADIPARTENZADELLLAMAPPA]
  879.   End If 
  880.  End If 
  881.  Curs Off 
  882. End Proc
  883. Procedure DABANCOAVARIABILI
  884.  If Length(BANCO)>0
  885.   TIC["Un attimo che converto i dati...",ULTIMALINEA]
  886.   INDIRIZZO=Start(BANCO)+21
  887.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  888.   'Nemici attivi o no:   
  889.   Add INDIRIZZO,Len(DATO$)+1
  890.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  891.   ANEMICI=Val(DATO$)
  892.   Add INDIRIZZO,Len(DATO$)+1
  893.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  894.   'Numero delle categorie degli oggetti:   
  895.   Add INDIRIZZO,Len(DATO$)+1
  896.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  897.   NUMEROCO=Val(DATO$)
  898.   Add INDIRIZZO,Len(DATO$)+1
  899.   For A=0 To NUMEROCO
  900.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  901.    'Categoria A>  
  902.    Add INDIRIZZO,Len(DATO$)+1
  903.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  904.    'Nome singolare: 
  905.    Add INDIRIZZO,Len(DATO$)+1
  906.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  907.    NOMESCO$(A)=DATO$
  908.    Add INDIRIZZO,Len(DATO$)+1
  909.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  910.    'Nome plurale: 
  911.    Add INDIRIZZO,Len(DATO$)+1
  912.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  913.    NOMEPCO$(A)=DATO$
  914.    Add INDIRIZZO,Len(DATO$)+1
  915.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  916.    'Nome singolare resto: 
  917.    Add INDIRIZZO,Len(DATO$)+1
  918.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  919.    NOMESRO$(A)=DATO$
  920.    Add INDIRIZZO,Len(DATO$)+1
  921.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  922.    'Nome plurale resto: 
  923.    Add INDIRIZZO,Len(DATO$)+1
  924.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  925.    NOMEPRO$(A)=DATO$
  926.    Add INDIRIZZO,Len(DATO$)+1
  927.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  928.    'Peso: 
  929.    Add INDIRIZZO,Len(DATO$)+1
  930.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  931.    PESOCO(A)=Val(DATO$)
  932.    Add INDIRIZZO,Len(DATO$)+1
  933.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  934.    'Peso resto: 
  935.    Add INDIRIZZO,Len(DATO$)+1
  936.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  937.    PESORESTOCO(A)=Val(DATO$)
  938.    Add INDIRIZZO,Len(DATO$)+1
  939.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  940.    'Tipo:   
  941.    Add INDIRIZZO,Len(DATO$)+1
  942.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  943.    TIPOCO(A)=Val(DATO$)
  944.    Add INDIRIZZO,Len(DATO$)+1
  945.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  946.    'Parametro tipo:   
  947.    Add INDIRIZZO,Len(DATO$)+1
  948.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  949.    PARATIPOCO(A)=Val(DATO$)
  950.    Add INDIRIZZO,Len(DATO$)+1
  951.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  952.    'Descrizione:  
  953.    Add INDIRIZZO,Len(DATO$)+1
  954.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  955.    DESCRIZIONECO$(A)=DATO$
  956.    Add INDIRIZZO,Len(DATO$)+1
  957.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  958.    'Oggetto del personaggio zero: 
  959.    Add INDIRIZZO,Len(DATO$)+1
  960.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  961.    OGGETTODELPERSONAGGIO0(A)=Val(DATO$)
  962.    Add INDIRIZZO,Len(DATO$)+1
  963.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  964.    'Resto del personaggio zero: 
  965.    Add INDIRIZZO,Len(DATO$)+1
  966.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  967.    RESTODELPERSONAGGIO0(A)=Val(DATO$)
  968.    Add INDIRIZZO,Len(DATO$)+1
  969.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  970.    'Oggetto dato: 
  971.    Add INDIRIZZO,Len(DATO$)+1
  972.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  973.    OGGETTODATOOLASCIATO(A)=Val(DATO$)
  974.    Add INDIRIZZO,Len(DATO$)+1
  975.   Next A
  976.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  977.   'Numero degli edifici:   
  978.   Add INDIRIZZO,Len(DATO$)+1
  979.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  980.   NUMEROE=Val(DATO$)
  981.   Add INDIRIZZO,Len(DATO$)+1
  982.   If NUMEROE>-1
  983.    For A=0 To NUMEROE
  984.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  985.     'Edificio A>   
  986.     Add INDIRIZZO,Len(DATO$)+1
  987.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  988.     'Nome: 
  989.     Add INDIRIZZO,Len(DATO$)+1
  990.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  991.     NOMEE$(A)=DATO$
  992.     Add INDIRIZZO,Len(DATO$)+1
  993.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  994.     'Descrizione:  
  995.     Add INDIRIZZO,Len(DATO$)+1
  996.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  997.     DESCRIZIONEE$(A)=DATO$
  998.     Add INDIRIZZO,Len(DATO$)+1
  999.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1000.     'Numero delle stanze:  
  1001.     Add INDIRIZZO,Len(DATO$)+1
  1002.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1003.     NUMEROS(A)=Val(DATO$)
  1004.     Add INDIRIZZO,Len(DATO$)+1
  1005.     For B=0 To NUMEROS(A)
  1006.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1007.      'Stanza A>   
  1008.      Add INDIRIZZO,Len(DATO$)+1
  1009.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1010.      'Nome: 
  1011.      Add INDIRIZZO,Len(DATO$)+1
  1012.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1013.      NOMES$(B,A)=DATO$
  1014.      Add INDIRIZZO,Len(DATO$)+1
  1015.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1016.      'Luogo Nord: 
  1017.      Add INDIRIZZO,Len(DATO$)+1
  1018.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1019.      DREZIONES(0,B,A)=Val(DATO$)
  1020.      Add INDIRIZZO,Len(DATO$)+1
  1021.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1022.      'Luogo NordEst:  
  1023.      Add INDIRIZZO,Len(DATO$)+1
  1024.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1025.      DREZIONES(1,B,A)=Val(DATO$)
  1026.      Add INDIRIZZO,Len(DATO$)+1
  1027.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1028.      'Luogo Est:  
  1029.      Add INDIRIZZO,Len(DATO$)+1
  1030.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1031.      DREZIONES(2,B,A)=Val(DATO$)
  1032.      Add INDIRIZZO,Len(DATO$)+1
  1033.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1034.      'Luogo SudEst: 
  1035.      Add INDIRIZZO,Len(DATO$)+1
  1036.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1037.      DREZIONES(3,B,A)=Val(DATO$)
  1038.      Add INDIRIZZO,Len(DATO$)+1
  1039.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1040.      'Luogo Sud:  
  1041.      Add INDIRIZZO,Len(DATO$)+1
  1042.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1043.      DREZIONES(4,B,A)=Val(DATO$)
  1044.      Add INDIRIZZO,Len(DATO$)+1
  1045.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1046.      'Luogo SudOvest: 
  1047.      Add INDIRIZZO,Len(DATO$)+1
  1048.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1049.      DREZIONES(5,B,A)=Val(DATO$)
  1050.      Add INDIRIZZO,Len(DATO$)+1
  1051.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1052.      'Luogo Ovest:  
  1053.      Add INDIRIZZO,Len(DATO$)+1
  1054.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1055.      DREZIONES(6,B,A)=Val(DATO$)
  1056.      Add INDIRIZZO,Len(DATO$)+1
  1057.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1058.      'Luogo NordOvest:  
  1059.      Add INDIRIZZO,Len(DATO$)+1
  1060.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1061.      DREZIONES(7,B,A)=Val(DATO$)
  1062.      Add INDIRIZZO,Len(DATO$)+1
  1063.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1064.      'Luogo Sopra:  
  1065.      Add INDIRIZZO,Len(DATO$)+1
  1066.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1067.      DREZIONES(8,B,A)=Val(DATO$)
  1068.      Add INDIRIZZO,Len(DATO$)+1
  1069.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1070.      'Luogo Sotto:  
  1071.      Add INDIRIZZO,Len(DATO$)+1
  1072.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1073.      DREZIONES(9,B,A)=Val(DATO$)
  1074.      Add INDIRIZZO,Len(DATO$)+1
  1075.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1076.      'Soldi nella stanza:   
  1077.      Add INDIRIZZO,Len(DATO$)+1
  1078.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1079.      SOLDIS(B,A)=Val(DATO$)
  1080.      Add INDIRIZZO,Len(DATO$)+1
  1081.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1082.      'Descrizione:  
  1083.      Add INDIRIZZO,Len(DATO$)+1
  1084.      DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1085.      DESCRIZIONES$(B,A)=DATO$
  1086.      Add INDIRIZZO,Len(DATO$)+1
  1087.     Next B
  1088.    Next A
  1089.   End If 
  1090.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1091.   'Numero dei luoghi:  
  1092.   Add INDIRIZZO,Len(DATO$)+1
  1093.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1094.   NUMEROL=Val(DATO$)
  1095.   Add INDIRIZZO,Len(DATO$)+1
  1096.   For A=0 To NUMEROL
  1097.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1098.    'Luogo A>  
  1099.    Add INDIRIZZO,Len(DATO$)+1
  1100.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1101.    'Nome: 
  1102.    Add INDIRIZZO,Len(DATO$)+1
  1103.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1104.    NOMEL$(A)=DATO$
  1105.    Add INDIRIZZO,Len(DATO$)+1
  1106.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1107.    'Luogo Nord: 
  1108.    Add INDIRIZZO,Len(DATO$)+1
  1109.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1110.    DREZIONEL(0,A)=Val(DATO$)
  1111.    Add INDIRIZZO,Len(DATO$)+1
  1112.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1113.    'Luogo NordEst:  
  1114.    Add INDIRIZZO,Len(DATO$)+1
  1115.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1116.    DREZIONEL(1,A)=Val(DATO$)
  1117.    Add INDIRIZZO,Len(DATO$)+1
  1118.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1119.    'Luogo Est:  
  1120.    Add INDIRIZZO,Len(DATO$)+1
  1121.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1122.    DREZIONEL(2,A)=Val(DATO$)
  1123.    Add INDIRIZZO,Len(DATO$)+1
  1124.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1125.    'Luogo SudEst: 
  1126.    Add INDIRIZZO,Len(DATO$)+1
  1127.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1128.    DREZIONEL(3,A)=Val(DATO$)
  1129.    Add INDIRIZZO,Len(DATO$)+1
  1130.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1131.    'Luogo Sud:  
  1132.    Add INDIRIZZO,Len(DATO$)+1
  1133.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1134.    DREZIONEL(4,A)=Val(DATO$)
  1135.    Add INDIRIZZO,Len(DATO$)+1
  1136.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1137.    'Luogo SudOvest: 
  1138.    Add INDIRIZZO,Len(DATO$)+1
  1139.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1140.    DREZIONEL(5,A)=Val(DATO$)
  1141.    Add INDIRIZZO,Len(DATO$)+1
  1142.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1143.    'Luogo Ovest:  
  1144.    Add INDIRIZZO,Len(DATO$)+1
  1145.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1146.    DREZIONEL(6,A)=Val(DATO$)
  1147.    Add INDIRIZZO,Len(DATO$)+1
  1148.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1149.    'Luogo NordOvest:  
  1150.    Add INDIRIZZO,Len(DATO$)+1
  1151.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1152.    DREZIONEL(7,A)=Val(DATO$)
  1153.    Add INDIRIZZO,Len(DATO$)+1
  1154.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1155.    'Luogo Sopra:  
  1156.    Add INDIRIZZO,Len(DATO$)+1
  1157.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1158.    DREZIONEL(8,A)=Val(DATO$)
  1159.    Add INDIRIZZO,Len(DATO$)+1
  1160.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1161.    'Luogo Sotto:  
  1162.    Add INDIRIZZO,Len(DATO$)+1
  1163.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1164.    DREZIONEL(9,A)=Val(DATO$)
  1165.    Add INDIRIZZO,Len(DATO$)+1
  1166.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1167.    'Soldi nel luogo:  
  1168.    Add INDIRIZZO,Len(DATO$)+1
  1169.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1170.    SOLDIL(A)=Val(DATO$)
  1171.    Add INDIRIZZO,Len(DATO$)+1
  1172.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1173.    'Tipo di luogo:  
  1174.    Add INDIRIZZO,Len(DATO$)+1
  1175.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1176.    TIPOL(A)=Val(DATO$)
  1177.    Add INDIRIZZO,Len(DATO$)+1
  1178.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1179.    'Descrizione:  
  1180.    Add INDIRIZZO,Len(DATO$)+1
  1181.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1182.    DESCRIZIONEL$(A)=DATO$
  1183.    Add INDIRIZZO,Len(DATO$)+1
  1184.   Next A
  1185.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1186.   'Numero degli oggetti:   
  1187.   Add INDIRIZZO,Len(DATO$)+1
  1188.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1189.   NUMEROO=Val(DATO$)
  1190.   Add INDIRIZZO,Len(DATO$)+1
  1191.   For A=0 To NUMEROO
  1192.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1193.    'Oggetto A>  
  1194.    Add INDIRIZZO,Len(DATO$)+1
  1195.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1196.    'Categoria:  
  1197.    Add INDIRIZZO,Len(DATO$)+1
  1198.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1199.    CATEGORIAO(A)=Val(DATO$)
  1200.    Add INDIRIZZO,Len(DATO$)+1
  1201.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1202.    'Posizione:  
  1203.    Add INDIRIZZO,Len(DATO$)+1
  1204.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1205.    POSIZIONEO(A)=Val(DATO$)
  1206.    Add INDIRIZZO,Len(DATO$)+1
  1207.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1208.    'Tipo:   
  1209.    Add INDIRIZZO,Len(DATO$)+1
  1210.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1211.    TIPOO(A)=Val(DATO$)
  1212.    Add INDIRIZZO,Len(DATO$)+1
  1213.   Next A
  1214.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1215.   'Numero dei personaggi:  
  1216.   Add INDIRIZZO,Len(DATO$)+1
  1217.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1218.   NUMEROP=Val(DATO$)
  1219.   Add INDIRIZZO,Len(DATO$)+1
  1220.   For A=0 To NUMEROP
  1221.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1222.    'Personaggio A>  
  1223.    Add INDIRIZZO,Len(DATO$)+1
  1224.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1225.    'Nome:   
  1226.    Add INDIRIZZO,Len(DATO$)+1
  1227.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1228.    NOMEP$(A)=DATO$
  1229.    Add INDIRIZZO,Len(DATO$)+1
  1230.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1231.    'Posizione:    
  1232.    Add INDIRIZZO,Len(DATO$)+1
  1233.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1234.    POSIZIONEP(A)=Val(DATO$)
  1235.    Add INDIRIZZO,Len(DATO$)+1
  1236.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1237.    'Costituzione:   
  1238.    Add INDIRIZZO,Len(DATO$)+1
  1239.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1240.    C0STITUZIONEP(A)=Val(DATO$)
  1241.    Add INDIRIZZO,Len(DATO$)+1
  1242.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1243.    'Destrezza:    
  1244.    Add INDIRIZZO,Len(DATO$)+1
  1245.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1246.    DESTREZZAP(A)=Val(DATO$)
  1247.    Add INDIRIZZO,Len(DATO$)+1
  1248.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1249.    'Forza:    
  1250.    Add INDIRIZZO,Len(DATO$)+1
  1251.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1252.    F0RZAP(A)=Val(DATO$)
  1253.    Add INDIRIZZO,Len(DATO$)+1
  1254.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1255.    'Peso:   
  1256.    Add INDIRIZZO,Len(DATO$)+1
  1257.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1258.    PESOP(A)=Val(DATO$)
  1259.    Add INDIRIZZO,Len(DATO$)+1
  1260.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1261.    'Peso netto:   
  1262.    Add INDIRIZZO,Len(DATO$)+1
  1263.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1264.    PESONETTOP(A)=Val(DATO$)
  1265.    Add INDIRIZZO,Len(DATO$)+1
  1266.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1267.    'Resistenza:   
  1268.    Add INDIRIZZO,Len(DATO$)+1
  1269.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1270.    RESISTENZAP(A)=Val(DATO$)
  1271.    Add INDIRIZZO,Len(DATO$)+1
  1272.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1273.    'Soldi:    
  1274.    Add INDIRIZZO,Len(DATO$)+1
  1275.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1276.    SOLDIP(A)=Val(DATO$)
  1277.    Add INDIRIZZO,Len(DATO$)+1
  1278.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1279.    'Tipo:   
  1280.    Add INDIRIZZO,Len(DATO$)+1
  1281.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1282.    TIPOP(A)=Val(DATO$)
  1283.    Add INDIRIZZO,Len(DATO$)+1
  1284.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1285.    'Descrizione:    
  1286.    Add INDIRIZZO,Len(DATO$)+1
  1287.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,"|")
  1288.    DESCRIZIONEP$(A)=DATO$
  1289.    Add INDIRIZZO,Len(DATO$)+1
  1290.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1291.    'Inizio sonno:   
  1292.    Add INDIRIZZO,Len(DATO$)+1
  1293.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1294.    INIZIOSONNOP(A)=Val(DATO$)
  1295.    Add INDIRIZZO,Len(DATO$)+1
  1296.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1297.    'Durata sonno:   
  1298.    Add INDIRIZZO,Len(DATO$)+1
  1299.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1300.    SONNOP(A)=Val(DATO$)
  1301.    Add INDIRIZZO,Len(DATO$)+1
  1302.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1303.    'Direzione presa:    
  1304.    Add INDIRIZZO,Len(DATO$)+1
  1305.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1306.    DREZIONEPRESAP(A)=Val(DATO$)
  1307.    Add INDIRIZZO,Len(DATO$)+1
  1308.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1309.    'Luogo di destinazione:    
  1310.    Add INDIRIZZO,Len(DATO$)+1
  1311.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1312.    LUOGODIDESTINAZIONEP(A)=Val(DATO$)
  1313.    Add INDIRIZZO,Len(DATO$)+1
  1314.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1315.    'Tempo di attraversamento:   
  1316.    Add INDIRIZZO,Len(DATO$)+1
  1317.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1318.    TEMP0DIATTRAVERSAMENTOP(A)=Val(DATO$)
  1319.    Add INDIRIZZO,Len(DATO$)+1
  1320.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1321.    'Soldi ricevuti:     
  1322.    Add INDIRIZZO,Len(DATO$)+1
  1323.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1324.    SOLDIRICEVUTIP(A)=Val(DATO$)
  1325.    Add INDIRIZZO,Len(DATO$)+1
  1326.    For B=0 To 7
  1327.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1328.     'Azione:   
  1329.     Add INDIRIZZO,Len(DATO$)+1
  1330.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1331.     AZIONEP(B,A)=Val(DATO$)
  1332.     Add INDIRIZZO,Len(DATO$)+1
  1333.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1334.     'Parametro A azione:   
  1335.     Add INDIRIZZO,Len(DATO$)+1
  1336.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1337.     PARAAAZIONEP(B,A)=Val(DATO$)
  1338.     Add INDIRIZZO,Len(DATO$)+1
  1339.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1340.     'Parametro B azione:   
  1341.     Add INDIRIZZO,Len(DATO$)+1
  1342.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1343.     PARABAZIONEP(B,A)=Val(DATO$)
  1344.     Add INDIRIZZO,Len(DATO$)+1
  1345.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1346.     'Parametro C azione:   
  1347.     Add INDIRIZZO,Len(DATO$)+1
  1348.     DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1349.     PARACAZIONEP(B,A)=Val(DATO$)
  1350.     Add INDIRIZZO,Len(DATO$)+1
  1351.    Next B
  1352.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1353.    'Posizione azione:   
  1354.    Add INDIRIZZO,Len(DATO$)+1
  1355.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1356.    POSIZIONEA(A)=Val(DATO$)
  1357.    Add INDIRIZZO,Len(DATO$)+1
  1358.   Next A
  1359.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1360.   'Numero delle regioni:   
  1361.   Add INDIRIZZO,Len(DATO$)+1
  1362.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1363.   NUMEROR=Val(DATO$)
  1364.   Add INDIRIZZO,Len(DATO$)+1
  1365.   For A=0 To NUMEROR
  1366.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1367.    'Regione A>  
  1368.    Add INDIRIZZO,Len(DATO$)+1
  1369.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1370.    'Nome:   
  1371.    Add INDIRIZZO,Len(DATO$)+1
  1372.    DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1373.    NOMER$(A)=DATO$
  1374.    Add INDIRIZZO,Len(DATO$)+1
  1375.   Next A
  1376.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1377.   'Giornata:     
  1378.   Add INDIRIZZO,Len(DATO$)+1
  1379.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1380.   CONDIZIONEG=Val(DATO$)
  1381.   Add INDIRIZZO,Len(DATO$)+1
  1382.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1383.   'Tempo trascorso:    
  1384.   Add INDIRIZZO,Len(DATO$)+1
  1385.   DATO$=Peek$(INDIRIZZO,Start(BANCO)+Length(BANCO)-INDIRIZZO,Chr$(10))
  1386.   TEMP0TRASCORSO=Val(DATO$)
  1387.   Add INDIRIZZO,Len(DATO$)+1
  1388.   If INDIRIZZO=Start(BANCO)+Length(BANCO)
  1389.    Proc TIC["Conversione dati avvenuta",ULTIMALINEA] : Proc _ASPETTA
  1390.   Else 
  1391.    Proc TIC["Conversione dati fallita",ULTIMALINEA] : Proc _ASPETTA
  1392.    Proc INIZIALIZZALEVARIABILI
  1393.   End If 
  1394.   Erase BANCO
  1395.  End If 
  1396. End Proc
  1397. Procedure DAI
  1398.  For A=1 To NUMEROP
  1399.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIRICEVENTI
  1400.  Next A
  1401.  If PERSONAGGIRICEVENTI>0
  1402.   For A=0 To NUMEROCO
  1403.    If OGGETTODELPERSONAGGIO0(A)>0
  1404.     Inc CATEGORIEOGGETTI
  1405.    End If 
  1406.    If RESTODELPERSONAGGIO0(A)>0
  1407.     Inc CATEGORIEOGGETTI
  1408.    End If 
  1409.   Next A
  1410.   For A=1 To NUMEROP
  1411.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  1412.     Inc PERSONAGGIDADARE
  1413.    End If 
  1414.   Next A
  1415.   If SOLDIP(0)>0
  1416.    SOLDIDADARE=True
  1417.   End If 
  1418.   If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1419.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto, un personaggio o dei soldi (o/p/s) ?>";
  1420.    OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  1421.    OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  1422.    If OGGETTOPERSONAGGIOOSOLDI$="o"
  1423.     Proc DAIUNOGGETTO
  1424.    Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  1425.     Proc DAIUNPERSONAGGIO
  1426.    Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  1427.     Proc DAIDEISOLDI
  1428.    End If 
  1429.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1430.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto o dei soldi (o/s) ?>";
  1431.    OGGETTOOSOLDI$=Input$(1)
  1432.    OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  1433.    If OGGETTOOSOLDI$="o"
  1434.     Proc DAIUNOGGETTO
  1435.    Else If OGGETTOOSOLDI$="s"
  1436.     Proc DAIDEISOLDI
  1437.    End If 
  1438.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=True
  1439.    Print At(0,ULTIMALINEA);"Vuoi dare un personaggio o dei soldi (p/s) ?>";
  1440.    PERSONAGGIOOSOLDI$=Input$(1)
  1441.    PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  1442.    If PERSONAGGIOOSOLDI$="p"
  1443.     Proc DAIUNPERSONAGGIO
  1444.    Else If PERSONAGGIOOSOLDI$="s"
  1445.     Proc DAIDEISOLDI
  1446.    End If 
  1447.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE=0 and SOLDIDADARE=True
  1448.    Proc DAIDEISOLDI
  1449.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1450.    Print At(0,ULTIMALINEA);"Vuoi dare un oggetto od un personaggio (o/p) ?>";
  1451.    OGGETTOOPERSONAGGIO$=Input$(1)
  1452.    OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  1453.    If OGGETTOOPERSONAGGIO$="o"
  1454.     Proc DAIUNOGGETTO
  1455.    Else If OGGETTOOPERSONAGGIO$="p"
  1456.     Proc DAIUNPERSONAGGIO
  1457.    End If 
  1458.   Else If CATEGORIEOGGETTI>0 and PERSONAGGIDADARE=0 and SOLDIDADARE=False
  1459.    Proc DAIUNOGGETTO
  1460.   Else If CATEGORIEOGGETTI=0 and PERSONAGGIDADARE>0 and SOLDIDADARE=False
  1461.    Proc DAIUNPERSONAGGIO
  1462.   Else 
  1463.    Print At(0,ULTIMALINEA);"Non hai oggetti, personaggi o soldi da dare";
  1464.    If _MUSICA=False
  1465.     Bell 1
  1466.    End If 
  1467.    Proc _ASPETTA
  1468.   End If 
  1469.  Else 
  1470.   Print At(0,ULTIMALINEA);"Non ci sono personaggi a cui dare";
  1471.   If _MUSICA=False
  1472.    Bell 1
  1473.   End If 
  1474.   Proc _ASPETTA
  1475.  End If 
  1476. End Proc
  1477. Procedure DAIAPAO[AZIONE,P]
  1478.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1479.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1480.   PERSONAGGIOTROVATO=A
  1481.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1482.   PERSONAGGIOTROVATO=A
  1483.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1484.   PERSONAGGIOTROVATO=A
  1485.  End If 
  1486.  If PERSONAGGIOTROVATO>-1
  1487.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1488.   For A=0 To NUMEROO
  1489.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1490.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1491.     B=A
  1492.    End If 
  1493.   Next A
  1494.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1495.    Pop Proc
  1496.   End If 
  1497.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1498.    A=B
  1499.   Else 
  1500.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1501.    B=0
  1502.    For A=0 To NUMEROO
  1503.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1504.      OGGETTODELPERSONAGGIOP(B)=A
  1505.      Inc B
  1506.     End If 
  1507.    Next A
  1508.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1509.   End If 
  1510.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1511.   If Btst(1,TIPOO(A))=True
  1512.    If PERSONAGGIOTROVATO=0
  1513.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1514.    End If 
  1515.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1516.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1517.   Else 
  1518.    If PERSONAGGIOTROVATO=0
  1519.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1520.    End If 
  1521.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1522.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1523.   End If 
  1524.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1525.    For B=0 To NUMEROO
  1526.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1527.      If Btst(1,TIPOO(B))=True
  1528.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1529.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1530.      Else 
  1531.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1532.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1533.      End If 
  1534.     End If 
  1535.    Next B
  1536.    For B=1 To NUMEROP
  1537.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1538.      Add PESONETTOP(P),-PESOP(B)*1000
  1539.      Add PESONETTOP(P),-PESONETTOP(B)
  1540.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1541.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1542.     End If 
  1543.    Next B
  1544.   End If 
  1545.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1546.    If PERSONAGGIOTROVATO=0
  1547.     Print NOMEP$(P);" ti d� 1 ";
  1548.    Else 
  1549.     Print NOMEP$(P);" d� 1 ";
  1550.    End If 
  1551.    If Btst(1,TIPOO(A))=True
  1552.     Print NOMESRO$(CATEGORIAO(A));
  1553.    Else 
  1554.     Print NOMESCO$(CATEGORIAO(A));
  1555.    End If 
  1556.    If PERSONAGGIOTROVATO=0
  1557.     Print 
  1558.    Else 
  1559.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1560.    End If 
  1561.   End If 
  1562.   Dec PARAAAZIONEP(AZIONE,P)
  1563.   If PARAAAZIONEP(AZIONE,P)=0
  1564.    FINEA(AZIONE,P)=True
  1565.   End If 
  1566.  End If 
  1567. End Proc
  1568. Procedure DAIAPAOB[AZIONE,P]
  1569.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1570.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1571.   PERSONAGGIOTROVATO=A
  1572.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1573.   PERSONAGGIOTROVATO=A
  1574.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1575.   PERSONAGGIOTROVATO=A
  1576.  End If 
  1577.  If PERSONAGGIOTROVATO>-1
  1578.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1579.   For A=0 To NUMEROO
  1580.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1581.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1582.     B=A
  1583.    End If 
  1584.   Next A
  1585.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1586.    Pop Proc
  1587.   End If 
  1588.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1589.    A=B
  1590.   Else 
  1591.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1592.    B=0
  1593.    For A=0 To NUMEROO
  1594.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  1595.      OGGETTODELPERSONAGGIOP(B)=A
  1596.      Inc B
  1597.     End If 
  1598.    Next A
  1599.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1600.   End If 
  1601.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1602.   If Btst(1,TIPOO(A))=True
  1603.    If PERSONAGGIOTROVATO=0
  1604.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1605.    End If 
  1606.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1607.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1608.   Else 
  1609.    If PERSONAGGIOTROVATO=0
  1610.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1611.    End If 
  1612.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1613.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1614.   End If 
  1615.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1616.    For B=0 To NUMEROO
  1617.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1618.      If Btst(1,TIPOO(B))=True
  1619.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1620.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1621.      Else 
  1622.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1623.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1624.      End If 
  1625.     End If 
  1626.    Next B
  1627.    For B=1 To NUMEROP
  1628.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1629.      Add PESONETTOP(P),-PESOP(B)*1000
  1630.      Add PESONETTOP(P),-PESONETTOP(B)
  1631.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1632.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1633.     End If 
  1634.    Next B
  1635.   End If 
  1636.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1637.    If PERSONAGGIOTROVATO=0
  1638.     Print NOMEP$(P);" ti d� 1 ";
  1639.    Else 
  1640.     Print NOMEP$(P);" d� 1 ";
  1641.    End If 
  1642.    If Btst(1,TIPOO(A))=True
  1643.     Print NOMESRO$(CATEGORIAO(A));
  1644.    Else 
  1645.     Print NOMESCO$(CATEGORIAO(A));
  1646.    End If 
  1647.    If PERSONAGGIOTROVATO=0
  1648.     Print 
  1649.    Else 
  1650.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1651.    End If 
  1652.   End If 
  1653.   Dec PARAAAZIONEP(AZIONE,P)
  1654.   If PARAAAZIONEP(AZIONE,P)=0
  1655.    FINEA(AZIONE,P)=True
  1656.   End If 
  1657.  End If 
  1658. End Proc
  1659. Procedure DAIAPAOTB[AZIONE,P]
  1660.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1661.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1662.   PERSONAGGIOTROVATO=A
  1663.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1664.   PERSONAGGIOTROVATO=A
  1665.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1666.   PERSONAGGIOTROVATO=A
  1667.  End If 
  1668.  If PERSONAGGIOTROVATO>-1
  1669.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1670.   For A=0 To NUMEROO
  1671.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1672.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1673.     B=A
  1674.    End If 
  1675.   Next A
  1676.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1677.    Pop Proc
  1678.   End If 
  1679.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1680.    A=B
  1681.   Else 
  1682.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1683.    B=0
  1684.    For A=0 To NUMEROO
  1685.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1686.      OGGETTODELPERSONAGGIOP(B)=A
  1687.      Inc B
  1688.     End If 
  1689.    Next A
  1690.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1691.   End If 
  1692.   For A=0 To NUMEROO
  1693.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  1694.     POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1695.     If Btst(1,TIPOO(A))=True
  1696.      If PERSONAGGIOTROVATO=0
  1697.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1698.      End If 
  1699.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1700.      Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1701.     Else 
  1702.      If PERSONAGGIOTROVATO=0
  1703.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1704.      End If 
  1705.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1706.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1707.     End If 
  1708.     If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1709.      For B=0 To NUMEROO
  1710.       If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1711.        If Btst(1,TIPOO(B))=True
  1712.         Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1713.         Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1714.        Else 
  1715.         Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1716.         Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1717.        End If 
  1718.       End If 
  1719.      Next B
  1720.      For B=1 To NUMEROP
  1721.       If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1722.        Add PESONETTOP(P),-PESOP(B)*1000
  1723.        Add PESONETTOP(P),-PESONETTOP(B)
  1724.        Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1725.        Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1726.       End If 
  1727.      Next B
  1728.     End If 
  1729.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1730.      If PERSONAGGIOTROVATO=0
  1731.       Print NOMEP$(P);" ti d� 1 ";
  1732.      Else 
  1733.       Print NOMEP$(P);" d� 1 ";
  1734.      End If 
  1735.      If Btst(1,TIPOO(A))=True
  1736.       Print NOMESRO$(CATEGORIAO(A));
  1737.      Else 
  1738.       Print NOMESCO$(CATEGORIAO(A));
  1739.      End If 
  1740.      If PERSONAGGIOTROVATO=0
  1741.       Print 
  1742.      Else 
  1743.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1744.      End If 
  1745.     End If 
  1746.     Dec PARAAAZIONEP(AZIONE,P)
  1747.     If PARAAAZIONEP(AZIONE,P)=0
  1748.      FINEA(AZIONE,P)=True
  1749.     End If 
  1750.     Exit 
  1751.    End If 
  1752.   Next A
  1753.  End If 
  1754. End Proc
  1755. Procedure DAIAPAP[AZIONE,P]
  1756.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1757.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1758.   PERSONAGGIOTROVATO=A
  1759.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1760.   PERSONAGGIOTROVATO=A
  1761.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1762.   PERSONAGGIOTROVATO=A
  1763.  End If 
  1764.  If PERSONAGGIOTROVATO>-1
  1765.   For A=0 To NUMEROP
  1766.    If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1767.     POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1768.     Add PESONETTOP(P),-PESOP(A)*1000
  1769.     Add PESONETTOP(P),-PESONETTOP(A)
  1770.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1771.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1772.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1773.      If PERSONAGGIOTROVATO=0
  1774.       Print NOMEP$(P);" ti d� ";
  1775.      Else 
  1776.       Print NOMEP$(P);" d� ";
  1777.      End If 
  1778.      Print NOMEP$(A);
  1779.      If PERSONAGGIOTROVATO=0
  1780.       Print 
  1781.      Else 
  1782.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1783.      End If 
  1784.     End If 
  1785.     Dec PARAAAZIONEP(AZIONE,P)
  1786.     If PARAAAZIONEP(AZIONE,P)=0
  1787.      FINEA(AZIONE,P)=True
  1788.     End If 
  1789.     Exit 
  1790.    End If 
  1791.   Next A
  1792.  End If 
  1793. End Proc
  1794. Procedure DAIAPPA[AZIONE,P]
  1795.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  1796.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1797.   PERSONAGGIOTROVATO=A
  1798.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1799.   PERSONAGGIOTROVATO=A
  1800.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1801.   PERSONAGGIOTROVATO=A
  1802.  End If 
  1803.  If PERSONAGGIOTROVATO>-1
  1804.   A=PARAAAZIONEP(AZIONE,P)
  1805.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  1806.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  1807.    Add PESONETTOP(P),-PESOP(A)*1000
  1808.    Add PESONETTOP(P),-PESONETTOP(A)
  1809.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  1810.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  1811.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1812.     If PERSONAGGIOTROVATO=0
  1813.      Print NOMEP$(P);" ti d� ";
  1814.     Else 
  1815.      Print NOMEP$(P);" d� ";
  1816.     End If 
  1817.     Print NOMEP$(A);
  1818.     If PERSONAGGIOTROVATO=0
  1819.      Print 
  1820.     Else 
  1821.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1822.     End If 
  1823.    End If 
  1824.    FINEA(AZIONE,P)=True
  1825.   End If 
  1826.  End If 
  1827. End Proc
  1828. Procedure DAIAPABO[AZIONE,P]
  1829.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1830.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1831.   PERSONAGGIOTROVATO=A
  1832.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1833.   PERSONAGGIOTROVATO=A
  1834.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1835.   PERSONAGGIOTROVATO=A
  1836.  End If 
  1837.  If PERSONAGGIOTROVATO>-1
  1838.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1839.   For A=0 To NUMEROO
  1840.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1841.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1842.     B=A
  1843.    End If 
  1844.   Next A
  1845.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1846.    Pop Proc
  1847.   End If 
  1848.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1849.    A=B
  1850.   Else 
  1851.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1852.    B=0
  1853.    For A=0 To NUMEROO
  1854.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  1855.      OGGETTODELPERSONAGGIOP(B)=A
  1856.      Inc B
  1857.     End If 
  1858.    Next A
  1859.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1860.   End If 
  1861.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1862.   If Btst(1,TIPOO(A))=True
  1863.    If PERSONAGGIOTROVATO=0
  1864.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1865.    End If 
  1866.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1867.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1868.   Else 
  1869.    If PERSONAGGIOTROVATO=0
  1870.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1871.    End If 
  1872.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1873.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1874.   End If 
  1875.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1876.    For B=0 To NUMEROO
  1877.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1878.      If Btst(1,TIPOO(B))=True
  1879.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1880.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1881.      Else 
  1882.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1883.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1884.      End If 
  1885.     End If 
  1886.    Next B
  1887.    For B=1 To NUMEROP
  1888.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1889.      Add PESONETTOP(P),-PESOP(B)*1000
  1890.      Add PESONETTOP(P),-PESONETTOP(B)
  1891.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1892.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1893.     End If 
  1894.    Next B
  1895.   End If 
  1896.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1897.    If PERSONAGGIOTROVATO=0
  1898.     Print NOMEP$(P);" ti d� 1 ";
  1899.    Else 
  1900.     Print NOMEP$(P);" d� 1 ";
  1901.    End If 
  1902.    If Btst(1,TIPOO(A))=True
  1903.     Print NOMESRO$(CATEGORIAO(A));
  1904.    Else 
  1905.     Print NOMESCO$(CATEGORIAO(A));
  1906.    End If 
  1907.    If PERSONAGGIOTROVATO=0
  1908.     Print 
  1909.    Else 
  1910.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  1911.    End If 
  1912.   End If 
  1913.   Dec PARABAZIONEP(AZIONE,P)
  1914.   If PARABAZIONEP(AZIONE,P)=0
  1915.    FINEA(AZIONE,P)=True
  1916.   End If 
  1917.  End If 
  1918. End Proc
  1919. Procedure DAIAPABOC[AZIONE,P]
  1920.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  1921.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  1922.   PERSONAGGIOTROVATO=A
  1923.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  1924.   PERSONAGGIOTROVATO=A
  1925.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  1926.   PERSONAGGIOTROVATO=A
  1927.  End If 
  1928.  If PERSONAGGIOTROVATO>-1
  1929.   NUMEROOGGETTODELPERSONAGGIOP=-1
  1930.   For A=0 To NUMEROO
  1931.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1932.     Inc NUMEROOGGETTODELPERSONAGGIOP
  1933.     B=A
  1934.    End If 
  1935.   Next A
  1936.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  1937.    Pop Proc
  1938.   End If 
  1939.   If NUMEROOGGETTODELPERSONAGGIOP=0
  1940.    A=B
  1941.   Else 
  1942.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  1943.    B=0
  1944.    For A=0 To NUMEROO
  1945.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARACAZIONEP(AZIONE,P)
  1946.      OGGETTODELPERSONAGGIOP(B)=A
  1947.      Inc B
  1948.     End If 
  1949.    Next A
  1950.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  1951.   End If 
  1952.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  1953.   If Btst(1,TIPOO(A))=True
  1954.    If PERSONAGGIOTROVATO=0
  1955.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  1956.    End If 
  1957.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  1958.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  1959.   Else 
  1960.    If PERSONAGGIOTROVATO=0
  1961.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  1962.    End If 
  1963.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  1964.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  1965.   End If 
  1966.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  1967.    For B=0 To NUMEROO
  1968.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  1969.      If Btst(1,TIPOO(B))=True
  1970.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  1971.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  1972.      Else 
  1973.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  1974.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  1975.      End If 
  1976.     End If 
  1977.    Next B
  1978.    For B=1 To NUMEROP
  1979.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  1980.      Add PESONETTOP(P),-PESOP(B)*1000
  1981.      Add PESONETTOP(P),-PESONETTOP(B)
  1982.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  1983.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  1984.     End If 
  1985.    Next B
  1986.   End If 
  1987.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  1988.    If PERSONAGGIOTROVATO=0
  1989.     Print NOMEP$(P);" ti d� 1 ";
  1990.    Else 
  1991.     Print NOMEP$(P);" d� 1 ";
  1992.    End If 
  1993.    If Btst(1,TIPOO(A))=True
  1994.     Print NOMESRO$(CATEGORIAO(A));
  1995.    Else 
  1996.     Print NOMESCO$(CATEGORIAO(A));
  1997.    End If 
  1998.    If PERSONAGGIOTROVATO=0
  1999.     Print 
  2000.    Else 
  2001.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2002.    End If 
  2003.   End If 
  2004.   Dec PARABAZIONEP(AZIONE,P)
  2005.   If PARABAZIONEP(AZIONE,P)=0
  2006.    FINEA(AZIONE,P)=True
  2007.   End If 
  2008.  End If 
  2009. End Proc
  2010. Procedure DAIAPABOTC[AZIONE,P]
  2011.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2012.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2013.   PERSONAGGIOTROVATO=A
  2014.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2015.   PERSONAGGIOTROVATO=A
  2016.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2017.   PERSONAGGIOTROVATO=A
  2018.  End If 
  2019.  If PERSONAGGIOTROVATO>-1
  2020.   NUMEROOGGETTODELPERSONAGGIOP=-1
  2021.   For A=0 To NUMEROO
  2022.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2023.     Inc NUMEROOGGETTODELPERSONAGGIOP
  2024.     B=A
  2025.    End If 
  2026.   Next A
  2027.   If NUMEROOGGETTODELPERSONAGGIOP=-1
  2028.    Pop Proc
  2029.   End If 
  2030.   If NUMEROOGGETTODELPERSONAGGIOP=0
  2031.    A=B
  2032.   Else 
  2033.    Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  2034.    B=0
  2035.    For A=0 To NUMEROO
  2036.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARACAZIONEP(AZIONE,P)
  2037.      OGGETTODELPERSONAGGIOP(B)=A
  2038.      Inc B
  2039.     End If 
  2040.    Next A
  2041.    A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  2042.   End If 
  2043.   POSIZIONEO(A)=-1-PERSONAGGIOTROVATO
  2044.   If Btst(1,TIPOO(A))=True
  2045.    If PERSONAGGIOTROVATO=0
  2046.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  2047.    End If 
  2048.    Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  2049.    Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(A))
  2050.   Else 
  2051.    If PERSONAGGIOTROVATO=0
  2052.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  2053.    End If 
  2054.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  2055.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(A))
  2056.   End If 
  2057.   If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  2058.    For B=0 To NUMEROO
  2059.     If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  2060.      If Btst(1,TIPOO(B))=True
  2061.       Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  2062.       Add PESONETTOP(PERSONAGGIOTROVATO),PESORESTOCO(CATEGORIAO(B))
  2063.      Else 
  2064.       Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  2065.       Add PESONETTOP(PERSONAGGIOTROVATO),PESOCO(CATEGORIAO(B))
  2066.      End If 
  2067.     End If 
  2068.    Next B
  2069.    For B=1 To NUMEROP
  2070.     If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  2071.      Add PESONETTOP(P),-PESOP(B)*1000
  2072.      Add PESONETTOP(P),-PESONETTOP(B)
  2073.      Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  2074.      Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  2075.     End If 
  2076.    Next B
  2077.   End If 
  2078.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2079.    If PERSONAGGIOTROVATO=0
  2080.     Print NOMEP$(P);" ti d� 1 ";
  2081.    Else 
  2082.     Print NOMEP$(P);" d� 1 ";
  2083.    End If 
  2084.    If Btst(1,TIPOO(A))=True
  2085.     Print NOMESRO$(CATEGORIAO(A));
  2086.    Else 
  2087.     Print NOMESCO$(CATEGORIAO(A));
  2088.    End If 
  2089.    If PERSONAGGIOTROVATO=0
  2090.     Print 
  2091.    Else 
  2092.     Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2093.    End If 
  2094.   End If 
  2095.   Dec PARABAZIONEP(AZIONE,P)
  2096.   If PARABAZIONEP(AZIONE,P)=0
  2097.    FINEA(AZIONE,P)=True
  2098.   End If 
  2099.  End If 
  2100. End Proc
  2101. Procedure DAIAPABP[AZIONE,P]
  2102.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2103.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2104.   PERSONAGGIOTROVATO=A
  2105.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2106.   PERSONAGGIOTROVATO=A
  2107.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2108.   PERSONAGGIOTROVATO=A
  2109.  End If 
  2110.  If PERSONAGGIOTROVATO>-1
  2111.   For A=0 To NUMEROP
  2112.    If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2113.     POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2114.     Add PESONETTOP(P),-PESOP(A)*1000
  2115.     Add PESONETTOP(P),-PESONETTOP(A)
  2116.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2117.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2118.     If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2119.      If PERSONAGGIOTROVATO=0
  2120.       Print NOMEP$(P);" ti d� ";
  2121.      Else 
  2122.       Print NOMEP$(P);" d� ";
  2123.      End If 
  2124.      Print NOMEP$(A);
  2125.      If PERSONAGGIOTROVATO=0
  2126.       Print 
  2127.      Else 
  2128.       Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2129.      End If 
  2130.     End If 
  2131.     Dec PARABAZIONEP(AZIONE,P)
  2132.     If PARABAZIONEP(AZIONE,P)=0
  2133.      FINEA(AZIONE,P)=True
  2134.     End If 
  2135.     Exit 
  2136.    End If 
  2137.   Next A
  2138.  End If 
  2139. End Proc
  2140. Procedure DAIAPAPB[AZIONE,P]
  2141.  A=PARAAAZIONEP(AZIONE,P) : PERSONAGGIOTROVATO=-1
  2142.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  2143.   PERSONAGGIOTROVATO=A
  2144.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  2145.   PERSONAGGIOTROVATO=A
  2146.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  2147.   PERSONAGGIOTROVATO=A
  2148.  End If 
  2149.  If PERSONAGGIOTROVATO>-1
  2150.   A=PARABAZIONEP(AZIONE,P)
  2151.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  2152.    POSIZIONEP(A)=-1-PERSONAGGIOTROVATO
  2153.    Add PESONETTOP(P),-PESOP(A)*1000
  2154.    Add PESONETTOP(P),-PESONETTOP(A)
  2155.    Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(A)*1000
  2156.    Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(A)
  2157.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  2158.     If PERSONAGGIOTROVATO=0
  2159.      Print NOMEP$(P);" ti d� ";
  2160.     Else 
  2161.      Print NOMEP$(P);" d� ";
  2162.     End If 
  2163.     Print NOMEP$(A);
  2164.     If PERSONAGGIOTROVATO=0
  2165.      Print 
  2166.     Else 
  2167.      Print " a ";NOMEP$(PERSONAGGIOTROVATO)
  2168.     End If 
  2169.    End If 
  2170.    FINEA(AZIONE,P)=True
  2171.   End If 
  2172.  End If 
  2173. End Proc
  2174. Procedure DAIDEISOLDI
  2175.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi dare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDIDADARE$;
  2176.  Curs Off 
  2177.  If SOLDIDADARE$<>""
  2178.   SOLDIDADARE=Val(SOLDIDADARE$)
  2179.   Proc LIMITI[SOLDIDADARE,0,SOLDIP(0)] : SOLDIDADARE=Param
  2180.   If SOLDIDADARE>0
  2181.    Add SOLDIP(0),-SOLDIDADARE*PESOS
  2182.    Proc PERSONAGGIORICEVENTE["S",SOLDIDADARE]
  2183.   End If 
  2184.  End If 
  2185. End Proc
  2186. Procedure DAIUNOGGETTO
  2187.  For A=0 To NUMEROCO
  2188.   If OGGETTODELPERSONAGGIO0(A)>0
  2189.    Inc CATEGORIEOGGETTI
  2190.   End If 
  2191.   If RESTODELPERSONAGGIO0(A)>0
  2192.    Inc CATEGORIEOGGETTI
  2193.   End If 
  2194.  Next A
  2195.  If CATEGORIEOGGETTI>0
  2196.   If CATEGORIEOGGETTI>1
  2197.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi dare ?>";OGGETTO$;
  2198.    Curs Off 
  2199.    For A=0 To NUMEROO
  2200.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2201.      If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  2202.       Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2203.      Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  2204.       Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2205.      End If 
  2206.     End If 
  2207.    Next A
  2208.   Else 
  2209.    For A=0 To NUMEROO
  2210.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  2211.      Proc PERSONAGGIORICEVENTE["O",A] : Exit 
  2212.     End If 
  2213.    Next A
  2214.   End If 
  2215.  End If 
  2216. End Proc
  2217. Procedure DAIUNPERSONAGGIO
  2218.  For A=1 To NUMEROP
  2219.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2220.    Inc PERSONAGGI
  2221.   End If 
  2222.  Next A
  2223.  If PERSONAGGI>0
  2224.   If PERSONAGGI>1
  2225.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi dare ?>";PERSONAGGIO$;
  2226.    Curs Off 
  2227.    For A=0 To NUMEROP
  2228.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2229.      Proc PERSONAGGIORICEVENTE["P",A]
  2230.      Exit 
  2231.     End If 
  2232.    Next A
  2233.    If A=NUMEROP+1
  2234.     Locate 0,ULTIMALINEA : Cline : Print "Non trasporti nessun ";PERSONAGGIO$;
  2235.     If _MUSICA=False
  2236.      Bell 1
  2237.     End If 
  2238.     Proc _ASPETTA
  2239.    End If 
  2240.   Else 
  2241.    For A=0 To NUMEROP
  2242.     If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  2243.      Proc PERSONAGGIORICEVENTE["P",A]
  2244.     End If 
  2245.    Next A
  2246.   End If 
  2247.  End If 
  2248. End Proc
  2249. Procedure DAVARIABILIABANCO[M0DO]
  2250.  Shared LUNGHEZZABANCO
  2251.  SENZAMEMORIA=False
  2252.  If M0DO=True
  2253.   TIC["Vuoi salvare anche il tempo trascorso di gioco (s/n) ?",ULTIMALINEA]
  2254.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  2255.   If RISPOSTA$="s"
  2256.    TEMP0TRASCORSODASALVARE=TEMP0TRASCORSO
  2257.   Else 
  2258.    TEMP0TRASCORSODASALVARE=0
  2259.   End If 
  2260.   TIC["Un attimo che converto i dati...",ULTIMALINEA]
  2261.   Reserve As Work BANCO,LUNGHEZZABANCO
  2262.   INDIRIZZO=Start(BANCO)
  2263.   Poke$ INDIRIZZO,"Adventures Conceiver"+Chr$(10)
  2264.   Add INDIRIZZO,21
  2265.   DATO$="Nemici attivi o no:"+Chr$(10)
  2266.   Poke$ INDIRIZZO,DATO$
  2267.   Add INDIRIZZO,Len(DATO$)
  2268.   DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2269.   Poke$ INDIRIZZO,DATO$
  2270.   Add INDIRIZZO,Len(DATO$)
  2271.   DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2272.   Poke$ INDIRIZZO,DATO$
  2273.   Add INDIRIZZO,Len(DATO$)
  2274.   DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2275.   Poke$ INDIRIZZO,DATO$
  2276.   Add INDIRIZZO,Len(DATO$)
  2277.   For A=0 To NUMEROCO
  2278.    DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2279.    Poke$ INDIRIZZO,DATO$
  2280.    Add INDIRIZZO,Len(DATO$)
  2281.    DATO$="Nome singolare:"+Chr$(10)
  2282.    Poke$ INDIRIZZO,DATO$
  2283.    Add INDIRIZZO,Len(DATO$)
  2284.    DATO$=NOMESCO$(A)+Chr$(10)
  2285.    Poke$ INDIRIZZO,DATO$
  2286.    Add INDIRIZZO,Len(DATO$)
  2287.    DATO$="Nome plurale:"+Chr$(10)
  2288.    Poke$ INDIRIZZO,DATO$
  2289.    Add INDIRIZZO,Len(DATO$)
  2290.    DATO$=NOMEPCO$(A)+Chr$(10)
  2291.    Poke$ INDIRIZZO,DATO$
  2292.    Add INDIRIZZO,Len(DATO$)
  2293.    DATO$="Nome singolare resto:"+Chr$(10)
  2294.    Poke$ INDIRIZZO,DATO$
  2295.    Add INDIRIZZO,Len(DATO$)
  2296.    DATO$=NOMESRO$(A)+Chr$(10)
  2297.    Poke$ INDIRIZZO,DATO$
  2298.    Add INDIRIZZO,Len(DATO$)
  2299.    DATO$="Nome plurale resto:"+Chr$(10)
  2300.    Poke$ INDIRIZZO,DATO$
  2301.    Add INDIRIZZO,Len(DATO$)
  2302.    DATO$=NOMEPRO$(A)+Chr$(10)
  2303.    Poke$ INDIRIZZO,DATO$
  2304.    Add INDIRIZZO,Len(DATO$)
  2305.    DATO$="Peso:"+Chr$(10)
  2306.    Poke$ INDIRIZZO,DATO$
  2307.    Add INDIRIZZO,Len(DATO$)
  2308.    DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2309.    Poke$ INDIRIZZO,DATO$
  2310.    Add INDIRIZZO,Len(DATO$)
  2311.    DATO$="Peso resto:"+Chr$(10)
  2312.    Poke$ INDIRIZZO,DATO$
  2313.    Add INDIRIZZO,Len(DATO$)
  2314.    DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2315.    Poke$ INDIRIZZO,DATO$
  2316.    Add INDIRIZZO,Len(DATO$)
  2317.    DATO$="Tipo:"+Chr$(10)
  2318.    Poke$ INDIRIZZO,DATO$
  2319.    Add INDIRIZZO,Len(DATO$)
  2320.    DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2321.    Poke$ INDIRIZZO,DATO$
  2322.    Add INDIRIZZO,Len(DATO$)
  2323.    DATO$="Parametro tipo:"+Chr$(10)
  2324.    Poke$ INDIRIZZO,DATO$
  2325.    Add INDIRIZZO,Len(DATO$)
  2326.    DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2327.    Poke$ INDIRIZZO,DATO$
  2328.    Add INDIRIZZO,Len(DATO$)
  2329.    DATO$="Descrizione:"+Chr$(10)
  2330.    Poke$ INDIRIZZO,DATO$
  2331.    Add INDIRIZZO,Len(DATO$)
  2332.    DATO$=DESCRIZIONECO$(A)+"|"
  2333.    Poke$ INDIRIZZO,DATO$
  2334.    Add INDIRIZZO,Len(DATO$)
  2335.    DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2336.    Poke$ INDIRIZZO,DATO$
  2337.    Add INDIRIZZO,Len(DATO$)
  2338.    DATO$=Str$(OGGETTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2339.    Poke$ INDIRIZZO,DATO$
  2340.    Add INDIRIZZO,Len(DATO$)
  2341.    DATO$="Resto del personaggio zero:"+Chr$(10)
  2342.    Poke$ INDIRIZZO,DATO$
  2343.    Add INDIRIZZO,Len(DATO$)
  2344.    DATO$=Str$(RESTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2345.    Poke$ INDIRIZZO,DATO$
  2346.    Add INDIRIZZO,Len(DATO$)
  2347.    DATO$="Oggetto dato:"+Chr$(10)
  2348.    Poke$ INDIRIZZO,DATO$
  2349.    Add INDIRIZZO,Len(DATO$)
  2350.    DATO$=Str$(OGGETTODATOOLASCIATO(A))-" "+Chr$(10)
  2351.    Poke$ INDIRIZZO,DATO$
  2352.    Add INDIRIZZO,Len(DATO$)
  2353.   Next A
  2354.   DATO$="Numero degli edifici:"+Chr$(10)
  2355.   Poke$ INDIRIZZO,DATO$
  2356.   Add INDIRIZZO,Len(DATO$)
  2357.   DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2358.   Poke$ INDIRIZZO,DATO$
  2359.   Add INDIRIZZO,Len(DATO$)
  2360.   If NUMEROE>-1
  2361.    For A=0 To NUMEROE
  2362.     DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2363.     Poke$ INDIRIZZO,DATO$
  2364.     Add INDIRIZZO,Len(DATO$)
  2365.     DATO$="Nome:"+Chr$(10)
  2366.     Poke$ INDIRIZZO,DATO$
  2367.     Add INDIRIZZO,Len(DATO$)
  2368.     DATO$=NOMEE$(A)+Chr$(10)
  2369.     Poke$ INDIRIZZO,DATO$
  2370.     Add INDIRIZZO,Len(DATO$)
  2371.     DATO$="Descrizione:"+Chr$(10)
  2372.     Poke$ INDIRIZZO,DATO$
  2373.     Add INDIRIZZO,Len(DATO$)
  2374.     DATO$=DESCRIZIONEE$(A)+"|"
  2375.     Poke$ INDIRIZZO,DATO$
  2376.     Add INDIRIZZO,Len(DATO$)
  2377.     DATO$="Numero delle stanze:"+Chr$(10)
  2378.     Poke$ INDIRIZZO,DATO$
  2379.     Add INDIRIZZO,Len(DATO$)
  2380.     DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2381.     Poke$ INDIRIZZO,DATO$
  2382.     Add INDIRIZZO,Len(DATO$)
  2383.     For B=0 To NUMEROS(A)
  2384.      DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2385.      Poke$ INDIRIZZO,DATO$
  2386.      Add INDIRIZZO,Len(DATO$)
  2387.      DATO$="Nome:"+Chr$(10)
  2388.      Poke$ INDIRIZZO,DATO$
  2389.      Add INDIRIZZO,Len(DATO$)
  2390.      DATO$=NOMES$(B,A)+Chr$(10)
  2391.      Poke$ INDIRIZZO,DATO$
  2392.      Add INDIRIZZO,Len(DATO$)
  2393.      DATO$="Luogo a Nord:"+Chr$(10)
  2394.      Poke$ INDIRIZZO,DATO$
  2395.      Add INDIRIZZO,Len(DATO$)
  2396.      DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2397.      Poke$ INDIRIZZO,DATO$
  2398.      Add INDIRIZZO,Len(DATO$)
  2399.      DATO$="Luogo a NordEst:"+Chr$(10)
  2400.      Poke$ INDIRIZZO,DATO$
  2401.      Add INDIRIZZO,Len(DATO$)
  2402.      DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2403.      Poke$ INDIRIZZO,DATO$
  2404.      Add INDIRIZZO,Len(DATO$)
  2405.      DATO$="Luogo a Est:"+Chr$(10)
  2406.      Poke$ INDIRIZZO,DATO$
  2407.      Add INDIRIZZO,Len(DATO$)
  2408.      DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2409.      Poke$ INDIRIZZO,DATO$
  2410.      Add INDIRIZZO,Len(DATO$)
  2411.      DATO$="Luogo a SudEst:"+Chr$(10)
  2412.      Poke$ INDIRIZZO,DATO$
  2413.      Add INDIRIZZO,Len(DATO$)
  2414.      DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2415.      Poke$ INDIRIZZO,DATO$
  2416.      Add INDIRIZZO,Len(DATO$)
  2417.      DATO$="Luogo a Sud:"+Chr$(10)
  2418.      Poke$ INDIRIZZO,DATO$
  2419.      Add INDIRIZZO,Len(DATO$)
  2420.      DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2421.      Poke$ INDIRIZZO,DATO$
  2422.      Add INDIRIZZO,Len(DATO$)
  2423.      DATO$="Luogo a SudOvest:"+Chr$(10)
  2424.      Poke$ INDIRIZZO,DATO$
  2425.      Add INDIRIZZO,Len(DATO$)
  2426.      DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2427.      Poke$ INDIRIZZO,DATO$
  2428.      Add INDIRIZZO,Len(DATO$)
  2429.      DATO$="Luogo a Ovest:"+Chr$(10)
  2430.      Poke$ INDIRIZZO,DATO$
  2431.      Add INDIRIZZO,Len(DATO$)
  2432.      DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2433.      Poke$ INDIRIZZO,DATO$
  2434.      Add INDIRIZZO,Len(DATO$)
  2435.      DATO$="Luogo a NordOvest:"+Chr$(10)
  2436.      Poke$ INDIRIZZO,DATO$
  2437.      Add INDIRIZZO,Len(DATO$)
  2438.      DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2439.      Poke$ INDIRIZZO,DATO$
  2440.      Add INDIRIZZO,Len(DATO$)
  2441.      DATO$="Luogo Sopra:"+Chr$(10)
  2442.      Poke$ INDIRIZZO,DATO$
  2443.      Add INDIRIZZO,Len(DATO$)
  2444.      DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2445.      Poke$ INDIRIZZO,DATO$
  2446.      Add INDIRIZZO,Len(DATO$)
  2447.      DATO$="Luogo Sotto:"+Chr$(10)
  2448.      Poke$ INDIRIZZO,DATO$
  2449.      Add INDIRIZZO,Len(DATO$)
  2450.      DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2451.      Poke$ INDIRIZZO,DATO$
  2452.      Add INDIRIZZO,Len(DATO$)
  2453.      DATO$="Soldi:"+Chr$(10)
  2454.      Poke$ INDIRIZZO,DATO$
  2455.      Add INDIRIZZO,Len(DATO$)
  2456.      DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2457.      Poke$ INDIRIZZO,DATO$
  2458.      Add INDIRIZZO,Len(DATO$)
  2459.      DATO$="Descrizione:"+Chr$(10)
  2460.      Poke$ INDIRIZZO,DATO$
  2461.      Add INDIRIZZO,Len(DATO$)
  2462.      DATO$=DESCRIZIONES$(B,A)+"|"
  2463.      Poke$ INDIRIZZO,DATO$
  2464.      Add INDIRIZZO,Len(DATO$)
  2465.     Next B
  2466.    Next A
  2467.   End If 
  2468.   DATO$="Numero dei luoghi:"+Chr$(10)
  2469.   Poke$ INDIRIZZO,DATO$
  2470.   Add INDIRIZZO,Len(DATO$)
  2471.   DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2472.   Poke$ INDIRIZZO,DATO$
  2473.   Add INDIRIZZO,Len(DATO$)
  2474.   For A=0 To NUMEROL
  2475.    DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2476.    Poke$ INDIRIZZO,DATO$
  2477.    Add INDIRIZZO,Len(DATO$)
  2478.    DATO$="Nome:"+Chr$(10)
  2479.    Poke$ INDIRIZZO,DATO$
  2480.    Add INDIRIZZO,Len(DATO$)
  2481.    DATO$=NOMEL$(A)+Chr$(10)
  2482.    Poke$ INDIRIZZO,DATO$
  2483.    Add INDIRIZZO,Len(DATO$)
  2484.    DATO$="Luogo a Nord:"+Chr$(10)
  2485.    Poke$ INDIRIZZO,DATO$
  2486.    Add INDIRIZZO,Len(DATO$)
  2487.    DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  2488.    Poke$ INDIRIZZO,DATO$
  2489.    Add INDIRIZZO,Len(DATO$)
  2490.    DATO$="Luogo a NordEst:"+Chr$(10)
  2491.    Poke$ INDIRIZZO,DATO$
  2492.    Add INDIRIZZO,Len(DATO$)
  2493.    DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  2494.    Poke$ INDIRIZZO,DATO$
  2495.    Add INDIRIZZO,Len(DATO$)
  2496.    DATO$="Luogo a Est:"+Chr$(10)
  2497.    Poke$ INDIRIZZO,DATO$
  2498.    Add INDIRIZZO,Len(DATO$)
  2499.    DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  2500.    Poke$ INDIRIZZO,DATO$
  2501.    Add INDIRIZZO,Len(DATO$)
  2502.    DATO$="Luogo a SudEst:"+Chr$(10)
  2503.    Poke$ INDIRIZZO,DATO$
  2504.    Add INDIRIZZO,Len(DATO$)
  2505.    DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  2506.    Poke$ INDIRIZZO,DATO$
  2507.    Add INDIRIZZO,Len(DATO$)
  2508.    DATO$="Luogo a Sud:"+Chr$(10)
  2509.    Poke$ INDIRIZZO,DATO$
  2510.    Add INDIRIZZO,Len(DATO$)
  2511.    DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  2512.    Poke$ INDIRIZZO,DATO$
  2513.    Add INDIRIZZO,Len(DATO$)
  2514.    DATO$="Luogo a SudOvest:"+Chr$(10)
  2515.    Poke$ INDIRIZZO,DATO$
  2516.    Add INDIRIZZO,Len(DATO$)
  2517.    DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  2518.    Poke$ INDIRIZZO,DATO$
  2519.    Add INDIRIZZO,Len(DATO$)
  2520.    DATO$="Luogo a Ovest:"+Chr$(10)
  2521.    Poke$ INDIRIZZO,DATO$
  2522.    Add INDIRIZZO,Len(DATO$)
  2523.    DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  2524.    Poke$ INDIRIZZO,DATO$
  2525.    Add INDIRIZZO,Len(DATO$)
  2526.    DATO$="Luogo a NordOvest:"+Chr$(10)
  2527.    Poke$ INDIRIZZO,DATO$
  2528.    Add INDIRIZZO,Len(DATO$)
  2529.    DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  2530.    Poke$ INDIRIZZO,DATO$
  2531.    Add INDIRIZZO,Len(DATO$)
  2532.    DATO$="Luogo Sopra:"+Chr$(10)
  2533.    Poke$ INDIRIZZO,DATO$
  2534.    Add INDIRIZZO,Len(DATO$)
  2535.    DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  2536.    Poke$ INDIRIZZO,DATO$
  2537.    Add INDIRIZZO,Len(DATO$)
  2538.    DATO$="Luogo Sotto:"+Chr$(10)
  2539.    Poke$ INDIRIZZO,DATO$
  2540.    Add INDIRIZZO,Len(DATO$)
  2541.    DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  2542.    Poke$ INDIRIZZO,DATO$
  2543.    Add INDIRIZZO,Len(DATO$)
  2544.    DATO$="Soldi:"+Chr$(10)
  2545.    Poke$ INDIRIZZO,DATO$
  2546.    Add INDIRIZZO,Len(DATO$)
  2547.    DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  2548.    Poke$ INDIRIZZO,DATO$
  2549.    Add INDIRIZZO,Len(DATO$)
  2550.    DATO$="Regione:"+Chr$(10)
  2551.    Poke$ INDIRIZZO,DATO$
  2552.    Add INDIRIZZO,Len(DATO$)
  2553.    DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  2554.    Poke$ INDIRIZZO,DATO$
  2555.    Add INDIRIZZO,Len(DATO$)
  2556.    DATO$="Tipo di luogo:"+Chr$(10)
  2557.    Poke$ INDIRIZZO,DATO$
  2558.    Add INDIRIZZO,Len(DATO$)
  2559.    DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  2560.    Poke$ INDIRIZZO,DATO$
  2561.    Add INDIRIZZO,Len(DATO$)
  2562.    DATO$="Descrizione:"+Chr$(10)
  2563.    Poke$ INDIRIZZO,DATO$
  2564.    Add INDIRIZZO,Len(DATO$)
  2565.    DATO$=DESCRIZIONEL$(A)+"|"
  2566.    Poke$ INDIRIZZO,DATO$
  2567.    Add INDIRIZZO,Len(DATO$)
  2568.   Next A
  2569.   DATO$="Numero degli oggetti:"+Chr$(10)
  2570.   Poke$ INDIRIZZO,DATO$
  2571.   Add INDIRIZZO,Len(DATO$)
  2572.   DATO$=Str$(NUMEROO)-" "+Chr$(10)
  2573.   Poke$ INDIRIZZO,DATO$
  2574.   Add INDIRIZZO,Len(DATO$)
  2575.   For A=0 To NUMEROO
  2576.    DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  2577.    Poke$ INDIRIZZO,DATO$
  2578.    Add INDIRIZZO,Len(DATO$)
  2579.    DATO$="Categoria:"+Chr$(10)
  2580.    Poke$ INDIRIZZO,DATO$
  2581.    Add INDIRIZZO,Len(DATO$)
  2582.    DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  2583.    Poke$ INDIRIZZO,DATO$
  2584.    Add INDIRIZZO,Len(DATO$)
  2585.    DATO$="Posizione:"+Chr$(10)
  2586.    Poke$ INDIRIZZO,DATO$
  2587.    Add INDIRIZZO,Len(DATO$)
  2588.    DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  2589.    Poke$ INDIRIZZO,DATO$
  2590.    Add INDIRIZZO,Len(DATO$)
  2591.    DATO$="Tipo:"+Chr$(10)
  2592.    Poke$ INDIRIZZO,DATO$
  2593.    Add INDIRIZZO,Len(DATO$)
  2594.    DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  2595.    Poke$ INDIRIZZO,DATO$
  2596.    Add INDIRIZZO,Len(DATO$)
  2597.   Next A
  2598.   DATO$="Numero dei personaggi:"+Chr$(10)
  2599.   Poke$ INDIRIZZO,DATO$
  2600.   Add INDIRIZZO,Len(DATO$)
  2601.   DATO$=Str$(NUMEROP)-" "+Chr$(10)
  2602.   Poke$ INDIRIZZO,DATO$
  2603.   Add INDIRIZZO,Len(DATO$)
  2604.   For A=0 To NUMEROP
  2605.    DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  2606.    Poke$ INDIRIZZO,DATO$
  2607.    Add INDIRIZZO,Len(DATO$)
  2608.    DATO$="Nome:"+Chr$(10)
  2609.    Poke$ INDIRIZZO,DATO$
  2610.    Add INDIRIZZO,Len(DATO$)
  2611.    DATO$=NOMEP$(A)+Chr$(10)
  2612.    Poke$ INDIRIZZO,DATO$
  2613.    Add INDIRIZZO,Len(DATO$)
  2614.    DATO$="Posizione:"+Chr$(10)
  2615.    Poke$ INDIRIZZO,DATO$
  2616.    Add INDIRIZZO,Len(DATO$)
  2617.    DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  2618.    Poke$ INDIRIZZO,DATO$
  2619.    Add INDIRIZZO,Len(DATO$)
  2620.    DATO$="Costituzione:"+Chr$(10)
  2621.    Poke$ INDIRIZZO,DATO$
  2622.    Add INDIRIZZO,Len(DATO$)
  2623.    DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  2624.    Poke$ INDIRIZZO,DATO$
  2625.    Add INDIRIZZO,Len(DATO$)
  2626.    DATO$="Destrezza:"+Chr$(10)
  2627.    Poke$ INDIRIZZO,DATO$
  2628.    Add INDIRIZZO,Len(DATO$)
  2629.    DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  2630.    Poke$ INDIRIZZO,DATO$
  2631.    Add INDIRIZZO,Len(DATO$)
  2632.    DATO$="Forza:"+Chr$(10)
  2633.    Poke$ INDIRIZZO,DATO$
  2634.    Add INDIRIZZO,Len(DATO$)
  2635.    DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  2636.    Poke$ INDIRIZZO,DATO$
  2637.    Add INDIRIZZO,Len(DATO$)
  2638.    DATO$="Peso:"+Chr$(10)
  2639.    Poke$ INDIRIZZO,DATO$
  2640.    Add INDIRIZZO,Len(DATO$)
  2641.    DATO$=Str$(PESOP(A))-" "+Chr$(10)
  2642.    Poke$ INDIRIZZO,DATO$
  2643.    Add INDIRIZZO,Len(DATO$)
  2644.    DATO$="Peso netto:"+Chr$(10)
  2645.    Poke$ INDIRIZZO,DATO$
  2646.    Add INDIRIZZO,Len(DATO$)
  2647.    DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  2648.    Poke$ INDIRIZZO,DATO$
  2649.    Add INDIRIZZO,Len(DATO$)
  2650.    DATO$="Resistenza:"+Chr$(10)
  2651.    Poke$ INDIRIZZO,DATO$
  2652.    Add INDIRIZZO,Len(DATO$)
  2653.    DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  2654.    Poke$ INDIRIZZO,DATO$
  2655.    Add INDIRIZZO,Len(DATO$)
  2656.    DATO$="Soldi:"+Chr$(10)
  2657.    Poke$ INDIRIZZO,DATO$
  2658.    Add INDIRIZZO,Len(DATO$)
  2659.    DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  2660.    Poke$ INDIRIZZO,DATO$
  2661.    Add INDIRIZZO,Len(DATO$)
  2662.    DATO$="Tipo:"+Chr$(10)
  2663.    Poke$ INDIRIZZO,DATO$
  2664.    Add INDIRIZZO,Len(DATO$)
  2665.    DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  2666.    Poke$ INDIRIZZO,DATO$
  2667.    Add INDIRIZZO,Len(DATO$)
  2668.    DATO$="Descrizione:"+Chr$(10)
  2669.    Poke$ INDIRIZZO,DATO$
  2670.    Add INDIRIZZO,Len(DATO$)
  2671.    DATO$=DESCRIZIONEP$(A)+"|"
  2672.    Poke$ INDIRIZZO,DATO$
  2673.    Add INDIRIZZO,Len(DATO$)
  2674.    DATO$="Inizio sonno:"+Chr$(10)
  2675.    Poke$ INDIRIZZO,DATO$
  2676.    Add INDIRIZZO,Len(DATO$)
  2677.    DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  2678.    Poke$ INDIRIZZO,DATO$
  2679.    Add INDIRIZZO,Len(DATO$)
  2680.    DATO$="Durata sonno:"+Chr$(10)
  2681.    Poke$ INDIRIZZO,DATO$
  2682.    Add INDIRIZZO,Len(DATO$)
  2683.    DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  2684.    Poke$ INDIRIZZO,DATO$
  2685.    Add INDIRIZZO,Len(DATO$)
  2686.    DATO$="Direzione presa:"+Chr$(10)
  2687.    Poke$ INDIRIZZO,DATO$
  2688.    Add INDIRIZZO,Len(DATO$)
  2689.    DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  2690.    Poke$ INDIRIZZO,DATO$
  2691.    Add INDIRIZZO,Len(DATO$)
  2692.    DATO$="Luogo di destinazione:"+Chr$(10)
  2693.    Poke$ INDIRIZZO,DATO$
  2694.    Add INDIRIZZO,Len(DATO$)
  2695.    DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  2696.    Poke$ INDIRIZZO,DATO$
  2697.    Add INDIRIZZO,Len(DATO$)
  2698.    DATO$="Tempo di attraversamento:"+Chr$(10)
  2699.    Poke$ INDIRIZZO,DATO$
  2700.    Add INDIRIZZO,Len(DATO$)
  2701.    DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  2702.    Poke$ INDIRIZZO,DATO$
  2703.    Add INDIRIZZO,Len(DATO$)
  2704.    DATO$="Soldi ricevuti:"+Chr$(10)
  2705.    Poke$ INDIRIZZO,DATO$
  2706.    Add INDIRIZZO,Len(DATO$)
  2707.    DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  2708.    Poke$ INDIRIZZO,DATO$
  2709.    Add INDIRIZZO,Len(DATO$)
  2710.    For B=0 To 7
  2711.     DATO$="Azione"+Str$(B)+">"+Chr$(10)
  2712.     Poke$ INDIRIZZO,DATO$
  2713.     Add INDIRIZZO,Len(DATO$)
  2714.     DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  2715.     Poke$ INDIRIZZO,DATO$
  2716.     Add INDIRIZZO,Len(DATO$)
  2717.     DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  2718.     Poke$ INDIRIZZO,DATO$
  2719.     Add INDIRIZZO,Len(DATO$)
  2720.     DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  2721.     Poke$ INDIRIZZO,DATO$
  2722.     Add INDIRIZZO,Len(DATO$)
  2723.     DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  2724.     Poke$ INDIRIZZO,DATO$
  2725.     Add INDIRIZZO,Len(DATO$)
  2726.     DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  2727.     Poke$ INDIRIZZO,DATO$
  2728.     Add INDIRIZZO,Len(DATO$)
  2729.     DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  2730.     Poke$ INDIRIZZO,DATO$
  2731.     Add INDIRIZZO,Len(DATO$)
  2732.     DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  2733.     Poke$ INDIRIZZO,DATO$
  2734.     Add INDIRIZZO,Len(DATO$)
  2735.    Next B
  2736.    DATO$="Posizione azione:"+Chr$(10)
  2737.    Poke$ INDIRIZZO,DATO$
  2738.    Add INDIRIZZO,Len(DATO$)
  2739.    DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  2740.    Poke$ INDIRIZZO,DATO$
  2741.    Add INDIRIZZO,Len(DATO$)
  2742.   Next A
  2743.   DATO$="Numero delle regioni:"+Chr$(10)
  2744.   Poke$ INDIRIZZO,DATO$
  2745.   Add INDIRIZZO,Len(DATO$)
  2746.   DATO$=Str$(NUMEROR)-" "+Chr$(10)
  2747.   Poke$ INDIRIZZO,DATO$
  2748.   Add INDIRIZZO,Len(DATO$)
  2749.   For A=0 To NUMEROR
  2750.    DATO$="Regione"+Str$(A)+">"+Chr$(10)
  2751.    Poke$ INDIRIZZO,DATO$
  2752.    Add INDIRIZZO,Len(DATO$)
  2753.    DATO$="Nome:"+Chr$(10)
  2754.    Poke$ INDIRIZZO,DATO$
  2755.    Add INDIRIZZO,Len(DATO$)
  2756.    DATO$=NOMER$(A)+Chr$(10)
  2757.    Poke$ INDIRIZZO,DATO$
  2758.    Add INDIRIZZO,Len(DATO$)
  2759.   Next A
  2760.   DATO$="Giornata:"+Chr$(10)
  2761.   Poke$ INDIRIZZO,DATO$
  2762.   Add INDIRIZZO,Len(DATO$)
  2763.   DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  2764.   Poke$ INDIRIZZO,DATO$
  2765.   Add INDIRIZZO,Len(DATO$)
  2766.   DATO$="Tempo trascorso:"+Chr$(10)
  2767.   Poke$ INDIRIZZO,DATO$
  2768.   Add INDIRIZZO,Len(DATO$)
  2769.   DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  2770.   Poke$ INDIRIZZO,DATO$
  2771.   Add INDIRIZZO,Len(DATO$)
  2772.   If INDIRIZZO>Start(BANCO)+Length(BANCO)
  2773.    Proc TIC["Conversione dati fallita!",ULTIMALINEA]
  2774.    Proc _ASPETTA
  2775.    SENZAMEMORIA=True
  2776.   End If 
  2777.  Else 
  2778.   Cls 
  2779.   Proc TIC["Sto calcolando la lunghezza del banco dei dati...",ULTIMALINEA]
  2780.   INDIRIZZO=21
  2781.   Print At(0,0);"Lunghezza banco>";Str$(INDIRIZZO)-" ";" Byte"
  2782.   DATO$="Nemici attivi o no:"+Chr$(10)
  2783.   Add INDIRIZZO,Len(DATO$)
  2784.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2785.   DATO$=Str$(ANEMICI)-" "+Chr$(10)
  2786.   Add INDIRIZZO,Len(DATO$)
  2787.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2788.   DATO$="Numero delle categorie degli oggetti:"+Chr$(10)
  2789.   Add INDIRIZZO,Len(DATO$)
  2790.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2791.   DATO$=Str$(NUMEROCO)-" "+Chr$(10)
  2792.   Add INDIRIZZO,Len(DATO$)
  2793.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2794.   For A=0 To NUMEROCO
  2795.    DATO$="Categoria"+Str$(A)+">"+Chr$(10)
  2796.    Add INDIRIZZO,Len(DATO$)
  2797.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2798.    DATO$="Nome singolare:"+Chr$(10)
  2799.    Add INDIRIZZO,Len(DATO$)
  2800.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2801.    DATO$=NOMESCO$(A)+Chr$(10)
  2802.    Add INDIRIZZO,Len(DATO$)
  2803.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2804.    DATO$="Nome plurale:"+Chr$(10)
  2805.    Add INDIRIZZO,Len(DATO$)
  2806.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2807.    DATO$=NOMEPCO$(A)+Chr$(10)
  2808.    Add INDIRIZZO,Len(DATO$)
  2809.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2810.    DATO$="Nome singolare resto:"+Chr$(10)
  2811.    Add INDIRIZZO,Len(DATO$)
  2812.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2813.    DATO$=NOMESRO$(A)+Chr$(10)
  2814.    Add INDIRIZZO,Len(DATO$)
  2815.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2816.    DATO$="Nome plurale resto:"+Chr$(10)
  2817.    Add INDIRIZZO,Len(DATO$)
  2818.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2819.    DATO$=NOMEPRO$(A)+Chr$(10)
  2820.    Add INDIRIZZO,Len(DATO$)
  2821.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2822.    DATO$="Peso:"+Chr$(10)
  2823.    Add INDIRIZZO,Len(DATO$)
  2824.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2825.    DATO$=Str$(PESOCO(A))-" "+Chr$(10)
  2826.    Add INDIRIZZO,Len(DATO$)
  2827.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2828.    DATO$="Peso resto:"+Chr$(10)
  2829.    Add INDIRIZZO,Len(DATO$)
  2830.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2831.    DATO$=Str$(PESORESTOCO(A))-" "+Chr$(10)
  2832.    Add INDIRIZZO,Len(DATO$)
  2833.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2834.    DATO$="Tipo:"+Chr$(10)
  2835.    Add INDIRIZZO,Len(DATO$)
  2836.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2837.    DATO$=Str$(TIPOCO(A))-" "+Chr$(10)
  2838.    Add INDIRIZZO,Len(DATO$)
  2839.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2840.    DATO$="Parametro tipo:"+Chr$(10)
  2841.    Add INDIRIZZO,Len(DATO$)
  2842.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2843.    DATO$=Str$(PARATIPOCO(A))-" "+Chr$(10)
  2844.    Add INDIRIZZO,Len(DATO$)
  2845.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2846.    DATO$="Descrizione:"+Chr$(10)
  2847.    Add INDIRIZZO,Len(DATO$)
  2848.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2849.    DATO$=DESCRIZIONECO$(A)+"|"
  2850.    Add INDIRIZZO,Len(DATO$)
  2851.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2852.    DATO$="Oggetto del personaggio zero:"+Chr$(10)
  2853.    Add INDIRIZZO,Len(DATO$)
  2854.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2855.    DATO$=Str$(OGGETTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2856.    Add INDIRIZZO,Len(DATO$)
  2857.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2858.    DATO$="Resto del personaggio zero:"+Chr$(10)
  2859.    Add INDIRIZZO,Len(DATO$)
  2860.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2861.    DATO$=Str$(RESTODELPERSONAGGIO0(A))-" "+Chr$(10)
  2862.    Add INDIRIZZO,Len(DATO$)
  2863.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2864.    DATO$="Oggetto dato:"+Chr$(10)
  2865.    Add INDIRIZZO,Len(DATO$)
  2866.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2867.    DATO$=Str$(OGGETTODATOOLASCIATO(A))-" "+Chr$(10)
  2868.    Add INDIRIZZO,Len(DATO$)
  2869.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2870.   Next A
  2871.   DATO$="Numero degli edifici:"+Chr$(10)
  2872.   Add INDIRIZZO,Len(DATO$)
  2873.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2874.   DATO$=Str$(NUMEROE)-" "+Chr$(10)
  2875.   Add INDIRIZZO,Len(DATO$)
  2876.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2877.   If NUMERO>-1
  2878.    For A=0 To NUMEROE
  2879.     DATO$="Edificio"+Str$(A)+">"+Chr$(10)
  2880.     Add INDIRIZZO,Len(DATO$)
  2881.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2882.     DATO$="Nome:"+Chr$(10)
  2883.     Add INDIRIZZO,Len(DATO$)
  2884.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2885.     DATO$=NOMEE$(A)+Chr$(10)
  2886.     Add INDIRIZZO,Len(DATO$)
  2887.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2888.     DATO$="Descrizione:"+Chr$(10)
  2889.     Add INDIRIZZO,Len(DATO$)
  2890.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2891.     DATO$=DESCRIZIONEE$(A)+"|"
  2892.     Add INDIRIZZO,Len(DATO$)
  2893.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2894.     DATO$="Numero delle stanze:"+Chr$(10)
  2895.     Add INDIRIZZO,Len(DATO$)
  2896.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2897.     DATO$=Str$(NUMEROS(A))-" "+Chr$(10)
  2898.     Add INDIRIZZO,Len(DATO$)
  2899.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2900.     For B=0 To NUMEROS(A)
  2901.      DATO$="Stanza"+Str$(A)+">"+Chr$(10)
  2902.      Add INDIRIZZO,Len(DATO$)
  2903.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2904.      DATO$="Nome:"+Chr$(10)
  2905.      Add INDIRIZZO,Len(DATO$)
  2906.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2907.      DATO$=NOMES$(B,A)+Chr$(10)
  2908.      Add INDIRIZZO,Len(DATO$)
  2909.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2910.      DATO$="Luogo a Nord:"+Chr$(10)
  2911.      Add INDIRIZZO,Len(DATO$)
  2912.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2913.      DATO$=Str$(DREZIONES(0,B,A))-" "+Chr$(10)
  2914.      Add INDIRIZZO,Len(DATO$)
  2915.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2916.      DATO$="Luogo a NordEst:"+Chr$(10)
  2917.      Add INDIRIZZO,Len(DATO$)
  2918.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2919.      DATO$=Str$(DREZIONES(1,B,A))-" "+Chr$(10)
  2920.      Add INDIRIZZO,Len(DATO$)
  2921.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2922.      DATO$="Luogo a Est:"+Chr$(10)
  2923.      Add INDIRIZZO,Len(DATO$)
  2924.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2925.      DATO$=Str$(DREZIONES(2,B,A))-" "+Chr$(10)
  2926.      Add INDIRIZZO,Len(DATO$)
  2927.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2928.      DATO$="Luogo a SudEst:"+Chr$(10)
  2929.      Add INDIRIZZO,Len(DATO$)
  2930.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2931.      DATO$=Str$(DREZIONES(3,B,A))-" "+Chr$(10)
  2932.      Add INDIRIZZO,Len(DATO$)
  2933.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2934.      DATO$="Luogo a Sud:"+Chr$(10)
  2935.      Add INDIRIZZO,Len(DATO$)
  2936.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2937.      DATO$=Str$(DREZIONES(4,B,A))-" "+Chr$(10)
  2938.      Add INDIRIZZO,Len(DATO$)
  2939.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2940.      DATO$="Luogo a SudOvest:"+Chr$(10)
  2941.      Add INDIRIZZO,Len(DATO$)
  2942.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2943.      DATO$=Str$(DREZIONES(5,B,A))-" "+Chr$(10)
  2944.      Add INDIRIZZO,Len(DATO$)
  2945.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2946.      DATO$="Luogo a Ovest:"+Chr$(10)
  2947.      Add INDIRIZZO,Len(DATO$)
  2948.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2949.      DATO$=Str$(DREZIONES(6,B,A))-" "+Chr$(10)
  2950.      Add INDIRIZZO,Len(DATO$)
  2951.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2952.      DATO$="Luogo a NordOvest:"+Chr$(10)
  2953.      Add INDIRIZZO,Len(DATO$)
  2954.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2955.      DATO$=Str$(DREZIONES(7,B,A))-" "+Chr$(10)
  2956.      Add INDIRIZZO,Len(DATO$)
  2957.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2958.      DATO$="Luogo Sopra:"+Chr$(10)
  2959.      Add INDIRIZZO,Len(DATO$)
  2960.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2961.      DATO$=Str$(DREZIONES(8,B,A))-" "+Chr$(10)
  2962.      Add INDIRIZZO,Len(DATO$)
  2963.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2964.      DATO$="Luogo Sotto:"+Chr$(10)
  2965.      Add INDIRIZZO,Len(DATO$)
  2966.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2967.      DATO$=Str$(DREZIONES(9,B,A))-" "+Chr$(10)
  2968.      Add INDIRIZZO,Len(DATO$)
  2969.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2970.      DATO$="Soldi:"+Chr$(10)
  2971.      Add INDIRIZZO,Len(DATO$)
  2972.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2973.      DATO$=Str$(SOLDIS(B,A))-" "+Chr$(10)
  2974.      Add INDIRIZZO,Len(DATO$)
  2975.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2976.      DATO$="Descrizione:"+Chr$(10)
  2977.      Add INDIRIZZO,Len(DATO$)
  2978.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2979.      DATO$=DESCRIZIONES$(B,A)+"|"
  2980.      Add INDIRIZZO,Len(DATO$)
  2981.      Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2982.     Next B
  2983.    Next A
  2984.   End If 
  2985.   DATO$="Numero dei luoghi:"+Chr$(10)
  2986.   Add INDIRIZZO,Len(DATO$)
  2987.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2988.   DATO$=Str$(NUMEROL)-" "+Chr$(10)
  2989.   Add INDIRIZZO,Len(DATO$)
  2990.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2991.   For A=0 To NUMEROL
  2992.    DATO$="Luogo"+Str$(A)+">"+Chr$(10)
  2993.    Add INDIRIZZO,Len(DATO$)
  2994.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2995.    DATO$="Nome:"+Chr$(10)
  2996.    Add INDIRIZZO,Len(DATO$)
  2997.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  2998.    DATO$=NOMEL$(A)+Chr$(10)
  2999.    Add INDIRIZZO,Len(DATO$)
  3000.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3001.    DATO$="Luogo a Nord:"+Chr$(10)
  3002.    Add INDIRIZZO,Len(DATO$)
  3003.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3004.    DATO$=Str$(DREZIONEL(0,A))-" "+Chr$(10)
  3005.    Add INDIRIZZO,Len(DATO$)
  3006.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3007.    DATO$="Luogo a NordEst:"+Chr$(10)
  3008.    Add INDIRIZZO,Len(DATO$)
  3009.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3010.    DATO$=Str$(DREZIONEL(1,A))-" "+Chr$(10)
  3011.    Add INDIRIZZO,Len(DATO$)
  3012.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3013.    DATO$="Luogo a Est:"+Chr$(10)
  3014.    Add INDIRIZZO,Len(DATO$)
  3015.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3016.    DATO$=Str$(DREZIONEL(2,A))-" "+Chr$(10)
  3017.    Add INDIRIZZO,Len(DATO$)
  3018.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3019.    DATO$="Luogo a SudEst:"+Chr$(10)
  3020.    Add INDIRIZZO,Len(DATO$)
  3021.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3022.    DATO$=Str$(DREZIONEL(3,A))-" "+Chr$(10)
  3023.    Add INDIRIZZO,Len(DATO$)
  3024.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3025.    DATO$="Luogo a Sud:"+Chr$(10)
  3026.    Add INDIRIZZO,Len(DATO$)
  3027.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3028.    DATO$=Str$(DREZIONEL(4,A))-" "+Chr$(10)
  3029.    Add INDIRIZZO,Len(DATO$)
  3030.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3031.    DATO$="Luogo a SudOvest:"+Chr$(10)
  3032.    Add INDIRIZZO,Len(DATO$)
  3033.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3034.    DATO$=Str$(DREZIONEL(5,A))-" "+Chr$(10)
  3035.    Add INDIRIZZO,Len(DATO$)
  3036.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3037.    DATO$="Luogo a Ovest:"+Chr$(10)
  3038.    Add INDIRIZZO,Len(DATO$)
  3039.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3040.    DATO$=Str$(DREZIONEL(6,A))-" "+Chr$(10)
  3041.    Add INDIRIZZO,Len(DATO$)
  3042.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3043.    DATO$="Luogo a NordOvest:"+Chr$(10)
  3044.    Add INDIRIZZO,Len(DATO$)
  3045.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3046.    DATO$=Str$(DREZIONEL(7,A))-" "+Chr$(10)
  3047.    Add INDIRIZZO,Len(DATO$)
  3048.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3049.    DATO$="Luogo Sopra:"+Chr$(10)
  3050.    Add INDIRIZZO,Len(DATO$)
  3051.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3052.    DATO$=Str$(DREZIONEL(8,A))-" "+Chr$(10)
  3053.    Add INDIRIZZO,Len(DATO$)
  3054.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3055.    DATO$="Luogo Sotto:"+Chr$(10)
  3056.    Add INDIRIZZO,Len(DATO$)
  3057.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3058.    DATO$=Str$(DREZIONEL(9,A))-" "+Chr$(10)
  3059.    Add INDIRIZZO,Len(DATO$)
  3060.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3061.    DATO$="Soldi:"+Chr$(10)
  3062.    Add INDIRIZZO,Len(DATO$)
  3063.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3064.    DATO$=Str$(SOLDIL(A))-" "+Chr$(10)
  3065.    Add INDIRIZZO,Len(DATO$)
  3066.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3067.    DATO$="Regione:"+Chr$(10)
  3068.    Add INDIRIZZO,Len(DATO$)
  3069.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3070.    DATO$=Str$(REGIONEL(A))-" "+Chr$(10)
  3071.    Add INDIRIZZO,Len(DATO$)
  3072.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3073.    DATO$="Tipo di luogo:"+Chr$(10)
  3074.    Add INDIRIZZO,Len(DATO$)
  3075.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3076.    DATO$=Str$(TIPOL(A))-" "+Chr$(10)
  3077.    Add INDIRIZZO,Len(DATO$)
  3078.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3079.    DATO$="Descrizione:"+Chr$(10)
  3080.    Add INDIRIZZO,Len(DATO$)
  3081.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3082.    DATO$=DESCRIZIONEL$(A)+"|"
  3083.    Add INDIRIZZO,Len(DATO$)
  3084.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3085.   Next A
  3086.   DATO$="Numero degli oggetti:"+Chr$(10)
  3087.   Add INDIRIZZO,Len(DATO$)
  3088.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3089.   DATO$=Str$(NUMEROO)-" "+Chr$(10)
  3090.   Add INDIRIZZO,Len(DATO$)
  3091.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3092.   For A=0 To NUMEROO
  3093.    DATO$="Oggetto"+Str$(A)+">"+Chr$(10)
  3094.    Add INDIRIZZO,Len(DATO$)
  3095.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3096.    DATO$="Categoria:"+Chr$(10)
  3097.    Add INDIRIZZO,Len(DATO$)
  3098.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3099.    DATO$=Str$(CATEGORIAO(A))-" "+Chr$(10)
  3100.    Add INDIRIZZO,Len(DATO$)
  3101.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3102.    DATO$="Posizione:"+Chr$(10)
  3103.    Add INDIRIZZO,Len(DATO$)
  3104.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3105.    DATO$=Str$(POSIZIONEO(A))-" "+Chr$(10)
  3106.    Add INDIRIZZO,Len(DATO$)
  3107.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3108.    DATO$="Tipo:"+Chr$(10)
  3109.    Add INDIRIZZO,Len(DATO$)
  3110.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3111.    DATO$=Str$(TIPOO(A))-" "+Chr$(10)
  3112.    Add INDIRIZZO,Len(DATO$)
  3113.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3114.   Next A
  3115.   DATO$="Numero dei personaggi:"+Chr$(10)
  3116.   Add INDIRIZZO,Len(DATO$)
  3117.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3118.   DATO$=Str$(NUMEROP)-" "+Chr$(10)
  3119.   Add INDIRIZZO,Len(DATO$)
  3120.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3121.   For A=0 To NUMEROP
  3122.    DATO$="Personaggio"+Str$(A)+">"+Chr$(10)
  3123.    Add INDIRIZZO,Len(DATO$)
  3124.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3125.    DATO$="Nome:"+Chr$(10)
  3126.    Add INDIRIZZO,Len(DATO$)
  3127.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3128.    DATO$=NOMEP$(A)+Chr$(10)
  3129.    Add INDIRIZZO,Len(DATO$)
  3130.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3131.    DATO$="Posizione:"+Chr$(10)
  3132.    Add INDIRIZZO,Len(DATO$)
  3133.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3134.    DATO$=Str$(POSIZIONEP(A))-" "+Chr$(10)
  3135.    Add INDIRIZZO,Len(DATO$)
  3136.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3137.    DATO$="Costituzione:"+Chr$(10)
  3138.    Add INDIRIZZO,Len(DATO$)
  3139.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3140.    DATO$=Str$(C0STITUZIONEP(A))-" "+Chr$(10)
  3141.    Add INDIRIZZO,Len(DATO$)
  3142.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3143.    DATO$="Destrezza:"+Chr$(10)
  3144.    Add INDIRIZZO,Len(DATO$)
  3145.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3146.    DATO$=Str$(DESTREZZAP(A))-" "+Chr$(10)
  3147.    Add INDIRIZZO,Len(DATO$)
  3148.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3149.    DATO$="Forza:"+Chr$(10)
  3150.    Add INDIRIZZO,Len(DATO$)
  3151.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3152.    DATO$=Str$(F0RZAP(A))-" "+Chr$(10)
  3153.    Add INDIRIZZO,Len(DATO$)
  3154.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3155.    DATO$="Peso:"+Chr$(10)
  3156.    Add INDIRIZZO,Len(DATO$)
  3157.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3158.    DATO$=Str$(PESOP(A))-" "+Chr$(10)
  3159.    Add INDIRIZZO,Len(DATO$)
  3160.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3161.    DATO$="Peso netto:"+Chr$(10)
  3162.    Add INDIRIZZO,Len(DATO$)
  3163.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3164.    DATO$=Str$(PESONETTOP(A))-" "+Chr$(10)
  3165.    Add INDIRIZZO,Len(DATO$)
  3166.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3167.    DATO$="Resistenza:"+Chr$(10)
  3168.    Add INDIRIZZO,Len(DATO$)
  3169.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3170.    DATO$=Str$(RESISTENZAP(A))-" "+Chr$(10)
  3171.    Add INDIRIZZO,Len(DATO$)
  3172.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3173.    DATO$="Soldi:"+Chr$(10)
  3174.    Add INDIRIZZO,Len(DATO$)
  3175.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3176.    DATO$=Str$(SOLDIP(A))-" "+Chr$(10)
  3177.    Add INDIRIZZO,Len(DATO$)
  3178.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3179.    DATO$="Tipo:"+Chr$(10)
  3180.    Add INDIRIZZO,Len(DATO$)
  3181.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3182.    DATO$=Str$(TIPOP(A))-" "+Chr$(10)
  3183.    Add INDIRIZZO,Len(DATO$)
  3184.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3185.    DATO$="Descrizione:"+Chr$(10)
  3186.    Add INDIRIZZO,Len(DATO$)
  3187.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3188.    DATO$=DESCRIZIONEP$(A)+"|"
  3189.    Add INDIRIZZO,Len(DATO$)
  3190.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3191.    DATO$="Inizio sonno:"+Chr$(10)
  3192.    Add INDIRIZZO,Len(DATO$)
  3193.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3194.    DATO$=Str$(INIZIOSONNOP(A))-" "+Chr$(10)
  3195.    Add INDIRIZZO,Len(DATO$)
  3196.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3197.    DATO$="Durata sonno:"+Chr$(10)
  3198.    Add INDIRIZZO,Len(DATO$)
  3199.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3200.    DATO$=Str$(SONNOP(A))-" "+Chr$(10)
  3201.    Add INDIRIZZO,Len(DATO$)
  3202.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3203.    DATO$="Direzione presa:"+Chr$(10)
  3204.    Add INDIRIZZO,Len(DATO$)
  3205.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3206.    DATO$=Str$(DREZIONEPRESAP(A))-" "+Chr$(10)
  3207.    Add INDIRIZZO,Len(DATO$)
  3208.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3209.    DATO$="Luogo di destinazione:"+Chr$(10)
  3210.    Add INDIRIZZO,Len(DATO$)
  3211.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3212.    DATO$=Str$(LUOGODIDESTINAZIONEP(A))-" "+Chr$(10)
  3213.    Add INDIRIZZO,Len(DATO$)
  3214.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3215.    DATO$="Tempo di attraversamento:"+Chr$(10)
  3216.    Add INDIRIZZO,Len(DATO$)
  3217.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3218.    DATO$=Str$(TEMP0DIATTRAVERSAMENTOP(A))-" "+Chr$(10)
  3219.    Add INDIRIZZO,Len(DATO$)
  3220.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3221.    DATO$="Soldi ricevuti:"+Chr$(10)
  3222.    Add INDIRIZZO,Len(DATO$)
  3223.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3224.    DATO$=Str$(SOLDIRICEVUTIP(A))-" "+Chr$(10)
  3225.    Add INDIRIZZO,Len(DATO$)
  3226.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3227.    For B=0 To 7
  3228.     DATO$="Azione"+Str$(B)+">"+Chr$(10)
  3229.     Add INDIRIZZO,Len(DATO$)
  3230.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3231.     DATO$=Str$(AZIONEP(B,A))-" "+Chr$(10)
  3232.     Add INDIRIZZO,Len(DATO$)
  3233.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3234.     DATO$="Parametro A azione"+Str$(B)+":"+Chr$(10)
  3235.     Add INDIRIZZO,Len(DATO$)
  3236.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3237.     DATO$=Str$(PARAAAZIONEP(B,A))-" "+Chr$(10)
  3238.     Add INDIRIZZO,Len(DATO$)
  3239.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3240.     DATO$="Parametro B azione"+Str$(B)+":"+Chr$(10)
  3241.     Add INDIRIZZO,Len(DATO$)
  3242.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3243.     DATO$=Str$(PARABAZIONEP(B,A))-" "+Chr$(10)
  3244.     Add INDIRIZZO,Len(DATO$)
  3245.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3246.     DATO$="Parametro C azione"+Str$(B)+":"+Chr$(10)
  3247.     Add INDIRIZZO,Len(DATO$)
  3248.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3249.     DATO$=Str$(PARACAZIONEP(B,A))-" "+Chr$(10)
  3250.     Add INDIRIZZO,Len(DATO$)
  3251.     Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3252.    Next B
  3253.    DATO$="Posizione azione:"+Chr$(10)
  3254.    Add INDIRIZZO,Len(DATO$)
  3255.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3256.    DATO$=Str$(POSIZIONEA(A))-" "+Chr$(10)
  3257.    Add INDIRIZZO,Len(DATO$)
  3258.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3259.   Next A
  3260.   DATO$="Numero delle regioni:"+Chr$(10)
  3261.   Add INDIRIZZO,Len(DATO$)
  3262.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3263.   DATO$=Str$(NUMEROR)-" "+Chr$(10)
  3264.   Add INDIRIZZO,Len(DATO$)
  3265.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3266.   For A=0 To NUMEROR
  3267.    DATO$="Regione"+Str$(A)+">"+Chr$(10)
  3268.    Add INDIRIZZO,Len(DATO$)
  3269.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3270.    DATO$="Nome:"+Chr$(10)
  3271.    Add INDIRIZZO,Len(DATO$)
  3272.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3273.    DATO$=NOMER$(A)+Chr$(10)
  3274.    Add INDIRIZZO,Len(DATO$)
  3275.    Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3276.   Next A
  3277.   DATO$="Giornata:"+Chr$(10)
  3278.   Add INDIRIZZO,Len(DATO$)
  3279.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3280.   DATO$=Str$(CONDIZIONEG)-" "+Chr$(10)
  3281.   Add INDIRIZZO,Len(DATO$)
  3282.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3283.   DATO$="Tempo trascorso:"+Chr$(10)
  3284.   Add INDIRIZZO,Len(DATO$)
  3285.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3286.   DATO$=Str$(TEMP0TRASCORSODASALVARE)-" "+Chr$(10)
  3287.   Add INDIRIZZO,Len(DATO$)
  3288.   Print At(16,0);Str$(INDIRIZZO)-" ";" Byte"
  3289.   MEMORIA=Max(Chip Free,Fast Free)
  3290.   If INDIRIZZO>MEMORIA
  3291.    Proc TIC["Mancano"+Str$(INDIRIZZO-1-MEMORIA)+" Byte",ULTIMALINEA]
  3292.    Proc _ASPETTA
  3293.    SENZAMEMORIA=True
  3294.   Else 
  3295.    LUNGHEZZABANCO=INDIRIZZO
  3296.    SENZAMEMORIA=False
  3297.   End If 
  3298.  End If 
  3299. End Proc
  3300. Procedure D0RMI
  3301.  COMPIUTAAZIONE=Rnd(120)+420
  3302.  Bset 2,TIPOP(0)
  3303.  Print At(0,ULTIMALINEA);"Hai deciso di dormire";
  3304.  Proc _ASPETTA
  3305. End Proc
  3306. Procedure EDIFICI
  3307.  If NUMEROE>-1
  3308.   For A=0 To NUMEROE
  3309.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3310.     EDIFICIVISIBILI=True
  3311.    End If 
  3312.   Next A
  3313.  Else 
  3314.   EDIFICIVISIBILI=False
  3315.  End If 
  3316.  If EDIFICIVISIBILI=True
  3317.   Print "Edifici visibili>"
  3318.   Proc FONDOSCHERMOGIOCO
  3319.   For A=0 To NUMEROE
  3320.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3321.     Print NOMEE$(A)
  3322.    End If 
  3323.    Proc FONDOSCHERMOGIOCO
  3324.   Next A
  3325.  Else 
  3326.   Print "Nessun edificio visibile"
  3327.  End If 
  3328. End Proc
  3329. Procedure EDIFICIOESTANZA
  3330.  E=POSIZIONEP(0)/$10000
  3331.  Print "Edificio>";NOMEE$(E)
  3332.  S=POSIZIONEP(0) mod $10000
  3333.  Print "Stanza>";NOMES$(S,E)
  3334.  Print "Direzioni visibili>";
  3335.  For A=0 To 9
  3336.   DREZIONE=DREZIONES(A,S,E) mod $10000
  3337.   If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  3338.  Next A
  3339.  Print 
  3340. End Proc
  3341. Procedure ESAMINA
  3342.  For A=1 To NUMEROP
  3343.   If PERSONAGGIOVISIBILEP(A)=True Then OGGETTIEPERSONAGGIDAESAMINARE=True
  3344.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3345.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3346.   End If 
  3347.  Next A
  3348.  If TEMP0DIATTRAVERSAMENTOP(0)=0
  3349.   For A=0 To NUMEROO
  3350.    If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  3351.     OGGETTIEPERSONAGGIDAESAMINARE=True
  3352.    End If 
  3353.   Next A
  3354.  End If 
  3355.  For A=0 To NUMEROO
  3356.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False
  3357.    OGGETTIEPERSONAGGIDAESAMINARE=True
  3358.   End If 
  3359.  Next A
  3360.  If OGGETTIEPERSONAGGIDAESAMINARE=True
  3361.   Cls 
  3362.   Print "Personaggi ed oggetti esaminabili>"
  3363.   For A=1 To NUMEROP
  3364.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  3365.     If RESISTENZAP(A)=0
  3366.      Print "Il cadavere di ",NOMEP$(A)
  3367.     Else 
  3368.      Print NOMEP$(A)
  3369.     End If 
  3370.     Proc FONDOSCHERMOGIOCO
  3371.    End If 
  3372.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  3373.     If RESISTENZAP(A)=0
  3374.      Print "Il cadavere di ";NOMEP$(A);" (che stai trasportando)"
  3375.     Else 
  3376.      Print NOMEP$(A);" (che stai trasportando)"
  3377.     End If 
  3378.     Proc FONDOSCHERMOGIOCO
  3379.    End If 
  3380.   Next A
  3381.   For A=0 To NUMEROO
  3382.    If POSIZIONEO(A)=POSIZIONEP(0)
  3383.     If Btst(3,TIPOO(A))=False
  3384.      Print Str$(A+1)-" ";">";
  3385.      If Btst(1,TIPOO(A))=True
  3386.       Print NOMESRO$(CATEGORIAO(A))
  3387.      Else 
  3388.       Print NOMESCO$(CATEGORIAO(A))
  3389.      End If 
  3390.      Proc FONDOSCHERMOGIOCO
  3391.     End If 
  3392.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3393.     Print Str$(A+1)-" ";">";
  3394.     If Btst(1,TIPOO(A))=True
  3395.      Print NOMESRO$(CATEGORIAO(A));
  3396.     Else 
  3397.      Print NOMESCO$(CATEGORIAO(A));
  3398.     End If 
  3399.     Print " (che stai trasportando)"
  3400.     Proc FONDOSCHERMOGIOCO
  3401.    End If 
  3402.   Next A
  3403.   Print At(0,ULTIMALINEA-1);"Chi o che cosa vuoi esaminare ?>" : Locate 0,ULTIMALINEA
  3404.   Input "Numero=Oggetto/Nome=Personaggio>";NUMEROOGGETTOONOMEPERSONAGGIO$;
  3405.   Curs Off 
  3406.   If NUMEROOGGETTOONOMEPERSONAGGIO$<>""
  3407.    If Val(NUMEROOGGETTOONOMEPERSONAGGIO$)=0
  3408.     If NUMEROOGGETTOONOMEPERSONAGGIO$="0"
  3409.      Pop Proc
  3410.     End If 
  3411.     For A=1 To NUMEROP
  3412.      If Lower$(NUMEROOGGETTOONOMEPERSONAGGIO$)=Lower$(NOMEP$(A))
  3413.       Exit 
  3414.      End If 
  3415.     Next A
  3416.     If A=NUMEROP+1
  3417.      Print At(0,ULTIMALINEA);"Non c'� nessun ";NUMEROOGGETTOONOMEPERSONAGGIO$;" da esaminare    ";
  3418.      If _MUSICA=False
  3419.       Bell 1
  3420.      End If 
  3421.      Proc _ASPETTA
  3422.     Else 
  3423.      COMPIUTAAZIONE=1
  3424.      Cls 
  3425.      If RESISTENZAP(A)=0
  3426.       Print NOMEP$(A);" era un";
  3427.       If Btst(1,TIPOP(A))=True
  3428.        Print "a femmina"
  3429.       Else 
  3430.        Print " maschio"
  3431.       End If 
  3432.      Else 
  3433.       Print NOMEP$(A);" ï¿½ un";
  3434.       If Btst(1,TIPOP(A))=True
  3435.        Print "a femmina"
  3436.       Else 
  3437.        Print " maschio"
  3438.       End If 
  3439.       If Btst(2,TIPOP(A))=True
  3440.        Print NOMEP$(A);" sta dormendo"
  3441.       End If 
  3442.       For B=0 To NUMEROO
  3443.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3444.         OGGETTIDAMOSTRARE=True
  3445.        End If 
  3446.       Next B
  3447.       If SOLDIP(A)>0
  3448.        OGGETTIDAMOSTRARE=True
  3449.       End If 
  3450.       If OGGETTIDAMOSTRARE=True
  3451.        For B=0 To NUMEROCO
  3452.         OGGETTIDIA(B)=0
  3453.         RESTIDIA(B)=0
  3454.        Next B
  3455.        For B=0 To NUMEROO
  3456.         If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True and Btst(3,TIPOO(B))=False
  3457.          If Btst(1,TIPOO(B))=True
  3458.           Inc RESTIDIA(CATEGORIAO(B))
  3459.          Else 
  3460.           Inc OGGETTIDIA(CATEGORIAO(B))
  3461.          End If 
  3462.         End If 
  3463.        Next B
  3464.        Print "Inventario oggetti di ";NOMEP$(A);">"
  3465.        For B=0 To NUMEROCO
  3466.         If OGGETTIDIA(B)>0
  3467.          Print Str$(OGGETTIDIA(B))-" ";" ";
  3468.          If OGGETTIDIA(B)=1
  3469.           Print NOMESCO$(B)
  3470.          Else 
  3471.           Print NOMEPCO$(B)
  3472.          End If 
  3473.         End If 
  3474.         If RESTIDIA(B)>0
  3475.          Print Str$(RESTIDIA(B))-" ";" ";
  3476.          If RESTIDIA(B)=1
  3477.           Print NOMESRO$(B)
  3478.          Else 
  3479.           Print NOMEPRO$(B)
  3480.          End If 
  3481.         End If 
  3482.        Next B
  3483.        If SOLDIP(B)>0
  3484.         Print Str$(SOLDIP(B))-" ";" ";
  3485.         If SOLDIP(B)=1
  3486.          Print "soldo"
  3487.         Else 
  3488.          Print "soldi"
  3489.         End If 
  3490.         Proc FONDOSCHERMOGIOCO
  3491.        End If 
  3492.        For B=0 To NUMEROO
  3493.         If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=True
  3494.          If Btst(2,TIPOCO(CATEGORIAO(B)))=True and Btst(2,TIPOO(B))=True
  3495.           Print NOMEP$(A);" indossa 1 ";NOMESCO$(CATEGORIAO(B))
  3496.           Exit 
  3497.          End If 
  3498.         End If 
  3499.        Next B
  3500.       Else 
  3501.        Print NOMEP$(A);" non ha nessun oggetto"
  3502.       End If 
  3503.      End If 
  3504.      Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3505.     End If 
  3506.    Else 
  3507.     OGGETTODAESAMINARE=Val(NUMEROOGGETTOONOMEPERSONAGGIO$)
  3508.     For A=0 To NUMEROO
  3509.      If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3510.       Exit 
  3511.      End If 
  3512.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=OGGETTODAESAMINARE-1
  3513.       Exit 
  3514.      End If 
  3515.     Next A
  3516.     If A=NUMEROO+1
  3517.      Print At(0,ULTIMALINEA);"Non c'� nessun oggetto col numero";OGGETTODAESAMINARE;
  3518.      If _MUSICA=False
  3519.       Bell 1
  3520.      End If 
  3521.      Proc _ASPETTA
  3522.     Else 
  3523.      COMPIUTAAZIONE=1
  3524.      Cls 
  3525.      Print "Oggetto numero";OGGETTODAESAMINARE;">";
  3526.      If Btst(1,TIPOO(A))=True
  3527.       Print NOMESRO$(CATEGORIAO(A))
  3528.      Else 
  3529.       Print NOMESCO$(CATEGORIAO(A))
  3530.      End If 
  3531.      If Btst(0,TIPOCO(CATEGORIAO(A)))=True
  3532.       Print "� commestibile"
  3533.      End If 
  3534.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  3535.       Print "� un contenitore"
  3536.      End If 
  3537.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  3538.       Print "� difensivo"
  3539.      End If 
  3540.      If Btst(3,TIPOCO(CATEGORIAO(A)))=True
  3541.       Print "� leggibile"
  3542.      End If 
  3543.      If Btst(4,TIPOCO(CATEGORIAO(A)))=True
  3544.       Print "� liquido"
  3545.      Else 
  3546.       Print "� solido"
  3547.      End If 
  3548.      If Btst(5,TIPOCO(CATEGORIAO(A)))=True
  3549.       Print "� magico"
  3550.      End If 
  3551.      If Btst(6,TIPOCO(CATEGORIAO(A)))=True
  3552.       Print "� offensivo"
  3553.      End If 
  3554.      If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  3555.       Print "� residente"
  3556.      End If 
  3557.      If Btst(8,TIPOCO(CATEGORIAO(A)))=True
  3558.       Print "� trasferibile"
  3559.      End If 
  3560.      If Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3561.       Print "� trasparente"
  3562.      End If 
  3563.      If Btst(10,TIPOCO(CATEGORIAO(A)))=True
  3564.       Print "� vincolato"
  3565.      End If 
  3566.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True and Btst(9,TIPOCO(CATEGORIAO(A)))=True
  3567.       For B=0 To NUMEROCO
  3568.        OGGETTIDIA(B)=0
  3569.        RESTIDIA(B)=0
  3570.       Next B
  3571.       For B=0 To NUMEROO
  3572.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and Btst(3,TIPOO(B))=False
  3573.         OGGETTICONTENUTI=True
  3574.         If Btst(1,TIPOO(B))=True
  3575.          Inc RESTIDIA(CATEGORIAO(A))
  3576.         Else 
  3577.          Inc OGGETTIDIA(CATEGORIAO(A))
  3578.         End If 
  3579.        End If 
  3580.       Next B
  3581.       For B=1 To NUMEROP
  3582.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3583.         PERSONAGGICONTENUTI=True
  3584.        End If 
  3585.       Next B
  3586.       If OGGETTICONTENUTI=True
  3587.        Print "oggetti contenuti>"
  3588.        Proc FONDOSCHERMOGIOCO
  3589.        For B=0 To NUMEROCO
  3590.         If OGGETTIDIA(B)>0
  3591.          Print Str$(OGGETTIDIA(B))-" ";" ";
  3592.          If OGGETTIDIA(B)=1
  3593.           Print NOMESCO$(B)
  3594.          Else 
  3595.           Print NOMEPCO$(B)
  3596.          End If 
  3597.          Proc FONDOSCHERMOGIOCO
  3598.         End If 
  3599.         If RESTIDIA(B)>0
  3600.          Print Str$(RESTIDIA(B))-" ";" ";
  3601.          If RESTIDIA(B)=1
  3602.           Print NOMESRO$(B)
  3603.          Else 
  3604.           Print NOMEPRO$(B)
  3605.          End If 
  3606.          Proc FONDOSCHERMOGIOCO
  3607.         End If 
  3608.        Next B
  3609.       Else 
  3610.        Print "non contiene nessun oggetto"
  3611.       End If 
  3612.       If PERSONAGGICONTENUTI=True
  3613.        Print "personaggi contenuti>"
  3614.        Proc FONDOSCHERMOGIOCO
  3615.        For B=1 To NUMEROP
  3616.         If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  3617.          Print NOMEP$(B)
  3618.          Proc FONDOSCHERMOGIOCO
  3619.         End If 
  3620.        Next B
  3621.       Else 
  3622.        Print "non contiene nessun personaggio"
  3623.       End If 
  3624.      End If 
  3625.      Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  3626.     End If 
  3627.    End If 
  3628.   End If 
  3629.  Else 
  3630.   Print At(0,ULTIMALINEA);"Non ci sono oggetti e personaggi da esaminare";
  3631.   If _MUSICA=False
  3632.    Bell 1
  3633.   End If 
  3634.   Proc _ASPETTA
  3635.  End If 
  3636. End Proc
  3637. Procedure FAIDORMIREGLIALTRIPERSONAGGI[P]
  3638.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440-COMPIUTAAZIONE
  3639.  If INIZIOSONNOP(P)=M1NUTI
  3640.   If PERSONAGGIOVISIBILEP(P)=True
  3641.    If Btst(2,TIPOP(P))=False
  3642.     Print NOMEP$(P);" si ï¿½ addormentat";
  3643.     If Btst(1,TIPOP(P))=True
  3644.      Print "a"
  3645.     Else 
  3646.      Print "o"
  3647.     End If 
  3648.    End If 
  3649.   End If 
  3650.   SONNOP(P)=Rnd(120)+420
  3651.   Bset 2,TIPOP(P)
  3652.  End If 
  3653. End Proc
  3654. Procedure FASEDELGIORNO
  3655.  Print "Fase del giorno>";
  3656.  M1NUTI=(TEMP0TRASCORSO+360) mod 1440
  3657.  If M1NUTI<360
  3658.   Print FASEG$(6)
  3659.  Else If M1NUTI>359 and M1NUTI<420
  3660.   Print FASEG$(0)
  3661.  Else If M1NUTI>419 and M1NUTI<540
  3662.   Print FASEG$(1)
  3663.  Else If M1NUTI>539 and M1NUTI<780
  3664.   Print FASEG$(2)
  3665.  Else If M1NUTI>779 and M1NUTI<1080
  3666.   Print FASEG$(3)
  3667.  Else If M1NUTI>1079 and M1NUTI<1140
  3668.   Print FASEG$(4)
  3669.  Else If M1NUTI>1139 and M1NUTI<1260
  3670.   Print FASEG$(5)
  3671.  Else 
  3672.   Print FASEG$(6)
  3673.  End If 
  3674. End Proc
  3675. Procedure FONDOSCHERMOEDITOR
  3676.  If MESSAGGIO1$<>""
  3677.   If Y Curs=ULTIMALINEA-1
  3678.    Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  3679.    Proc TIC["premi un tasto",ULTIMALINEA]
  3680.    Wait Key 
  3681.    Cls 
  3682.   End If 
  3683.  Else 
  3684.   If Y Curs=ULTIMALINEA
  3685.    Proc TIC["premi un tasto",ULTIMALINEA]
  3686.    Wait Key 
  3687.    Cls 
  3688.   End If 
  3689.  End If 
  3690. End Proc
  3691. Procedure FONDOSCHERMOGIOCO
  3692.  If Y Curs=ULTIMALINEA
  3693.   Proc TIC["premi un tasto",ULTIMALINEA]
  3694.   Wait Key 
  3695.   Cls 
  3696.  End If 
  3697. End Proc
  3698. Procedure GIOCA
  3699.  Fade 5,$66
  3700.  Proc MOSTRAMESSAGGIO["Prologo",PROLOGO$]
  3701.  Repeat 
  3702.   Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3703.   If FINEA(7,0)=True
  3704.    Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3705.    Exit 
  3706.   End If 
  3707.   If COMPIUTAAZIONE>0
  3708.    Add TEMP0TRASCORSO,COMPIUTAAZIONE
  3709.   End If 
  3710.   PERSONAGGIO0SITROVADENTROUNEDIFICIO=POSIZIONEP(0)/$10000
  3711.   If ANEMICI=True and PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3712.    AZIONI=COMPIUTAAZIONE
  3713.    While AZIONI>0
  3714.     NEMICI=Rnd(127-TEMP0TRASCORSO/1440)
  3715.     NEMICI=Max(NEMICI,0)
  3716.     If NEMICI=0
  3717.      If Btst(2,TIPOP(0))=True
  3718.       Bclr 2,TIPOP(0) : Add COMPIUTAAZIONE,-AZIONI : AZIONI=1 : INEMICITISVEGLIANO=True
  3719.       Proc NEMICI[0]
  3720.      Else 
  3721.       Proc NEMICI[0]
  3722.      End If 
  3723.     End If 
  3724.     Dec AZIONI
  3725.    Wend 
  3726.   End If 
  3727.   Cls 
  3728.   If RESISTENZAP(0)=0 Then Proc MORTE[0] : Exit 
  3729.   Proc TIC["Premi * per le informazioni",0] : Print 
  3730.   Print "Nome del personaggio>";NOMEP$(0)
  3731.   Proc TEMP0
  3732.   If PERSONAGGIO0SITROVADENTROUNEDIFICIO=0
  3733.    Proc FASEDELGIORNO
  3734.    Proc CONDIZIONEDELGIORNO
  3735.    If TEMP0DIATTRAVERSAMENTOP(0)=0
  3736.     Proc LUOGO
  3737.     Proc TIPODILUOGO
  3738.     Proc EDIFICI
  3739.     Proc PERSONAGGI
  3740.     Proc OGGETTI[True]
  3741.     Print String$("*",80);
  3742.     Proc AZIONIALTRIPERSONAGGI
  3743.     Proc OGGETTI[False]
  3744.     Bclr 2,TIPOP(0)
  3745.     Memorize X : Memorize Y 
  3746.     Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3747.     SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3748.     If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3749.     If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3750.     If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3751.     If SCELTA$="d" : Proc DAI : End If 
  3752.     If SCELTA$="e" : Proc ESAMINA : End If 
  3753.     If SCELTA$="g" : Proc GUARDA : End If 
  3754.     If SCELTA$="i" : Proc INVENTARIO : End If 
  3755.     If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3756.     If SCELTA$="l" : Proc LASCIA : End If 
  3757.     If SCELTA$="m" : Proc MUOVITI : End If 
  3758.     If SCELTA$="p" : Proc PRENDI : End If 
  3759.     If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3760.     If SCELTA$="u" : Proc USA : End If 
  3761.     If SCELTA$="z" : Proc D0RMI : End If 
  3762.    Else 
  3763.     Print NOMEP$(0);" sta andando ";
  3764.     If DREZIONEPRESAP(0)>7
  3765.      Print Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3766.     Else 
  3767.      Print "a ";Lower$(DREZIONE$(DREZIONEPRESAP(0)));
  3768.     End If 
  3769.     Print " da ";NOMEL$(POSIZIONEP(0))
  3770.     Proc TIPODILUOGO
  3771.     Proc TIPODILUOGODIDESTINAZIONE
  3772.     If TEMP0DIATTRAVERSAMENTOP(0)=1
  3773.      Print "Gli resta 1 minuto";
  3774.     Else 
  3775.      Print "Gli restano";TEMP0DIATTRAVERSAMENTOP(0);" minuti";
  3776.     End If 
  3777.     Print " di cammino..."
  3778.     Proc PERSONAGGI
  3779.     Print String$("*",80);
  3780.     Proc AZIONIALTRIPERSONAGGI
  3781.     Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3782.     SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3783.     If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3784.     If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3785.     If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3786.     If SCELTA$="d" : Proc DAI : End If 
  3787.     If SCELTA$="i" : Proc INVENTARIO : End If 
  3788.     If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3789.     If SCELTA$="l" : Proc LASCIA : End If 
  3790.     If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3791.     If SCELTA$="p" : Proc PRENDI : End If 
  3792.     If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3793.     If SCELTA$="z" : Proc D0RMI : End If 
  3794.    End If 
  3795.   Else 
  3796.    Proc EDIFICIOESTANZA
  3797.    Proc PERSONAGGI
  3798.    Print String$("*",80);
  3799.    Proc AZIONIALTRIPERSONAGGI
  3800.    Print At(0,ULTIMALINEA);"Che cosa vuoi fare ?";
  3801.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  3802.    If SCELTA$="*" : Proc INFORMAZIONI : End If 
  3803.    If SCELTA$="a" : Proc LASCIAPASSAREILTEMPO : End If 
  3804.    If SCELTA$="c" : Proc CARATTERISTICHE : End If 
  3805.    If SCELTA$="d" : Proc DAI : End If 
  3806.    If SCELTA$="i" : Proc INVENTARIO : End If 
  3807.    If SCELTA$="j" and _MUSICA=True : Proc SUONAUNMODULO[FILEREQUESTERMUSICA] : End If 
  3808.    If SCELTA$="l" : Proc LASCIA : End If 
  3809.    If SCELTA$="m" : Proc MUOVITI : MUOVITI=True : End If 
  3810.    If SCELTA$="p" : Proc PRENDI : End If 
  3811.    If SCELTA$="t" : M0DOVISUALIZZAZIONETEMPO= Not M0DOVISUALIZZAZIONETEMPO : End If 
  3812.    If SCELTA$="z" : Proc D0RMI : End If 
  3813.   End If 
  3814.   Proc CONTROLLASEILPERSONAGGIO0HARAGGIUNTOLOSCOPODELGIOCO
  3815.   If FINEA(7,0)=True
  3816.    Proc MOSTRAMESSAGGIO["****************************** Epilogo ******************************",EPILOGO$]
  3817.    Exit 
  3818.   End If 
  3819.  Until SCELTA$="x"
  3820.  Fade 5,$60
  3821. End Proc
  3822. Procedure GUARDA
  3823.  For A=0 To NUMEROCO
  3824.   If OGGETTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,OGGETTINELLUOGO(A)
  3825.   If RESTINELLUOGO(A)>0 Then Add OGGETTIVISIBILI,RESTINELLUOGO(A)
  3826.   If OGGETTODELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,OGGETTODELPERSONAGGIO0(A)
  3827.   If RESTODELPERSONAGGIO0(A)>0 Then Add OGGETTIVISIBILI,RESTODELPERSONAGGIO0(A)
  3828.  Next A
  3829.  If NUMEROE>-1
  3830.   For A=0 To NUMEROE
  3831.    If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3832.     Inc EDIFICIVISIBILI
  3833.    End If 
  3834.   Next A
  3835.  Else 
  3836.   EDIFICIVISIBILI=0
  3837.  End If 
  3838.  PERSONAGGIVISIBILI=1
  3839.  For A=1 To NUMEROP
  3840.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  3841.  Next A
  3842.  E=POSIZIONEP(0)/$10000
  3843.  If E>0
  3844.   If OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3845.    Print At(0,ULTIMALINEA);"Vuoi guardare un oggetto, un personaggio o la stanza (o/p/s) ?>";
  3846.    OGGETTOPERSONAGGIOOSTANZA$=Input$(1)
  3847.    OGGETTOPERSONAGGIOOSTANZA$=Lower$(OGGETTOPERSONAGGIOOSTANZA$)
  3848.    If OGGETTOPERSONAGGIOOSTANZA$="o"
  3849.     Proc GUARDAUNOGGETTO
  3850.    Else If OGGETTOPERSONAGGIOOSTANZA$="p"
  3851.     Proc GUARDAUNPERSONAGGIO
  3852.    Else If OGGETTOPERSONAGGIOOSTANZA$="s"
  3853.     Proc GUARDALASTANZA
  3854.    End If 
  3855.   Else If OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3856.    Print At(0,ULTIMALINEA);"Vuoi guardare un personaggio o la stanza (p/s) ?>";
  3857.    PERSONAGGIOOSTANZA$=Input$(1)
  3858.    PERSONAGGIOOSTANZA$=Lower$(PERSONAGGIOOSTANZA$)
  3859.    If PERSONAGGIOOSTANZA$="p"
  3860.     Proc GUARDAUNPERSONAGGIO
  3861.    Else If PERSONAGGIOOSTANZA$="s"
  3862.     Proc GUARDALASTANZA
  3863.    End If 
  3864.   End If 
  3865.  Else 
  3866.   If EDIFICIVISIBILI>0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3867.    Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo, un oggetto od un personaggio (e/l/o/p) ?>";
  3868.    EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3869.    EDIFICIOLUOGOOGGETTOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOGGETTOOPERSONAGGIO$)
  3870.    If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3871.     Proc GUARDALEDIFICIO
  3872.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="l"
  3873.     Proc GUARDAILLUOGO
  3874.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="o"
  3875.     Proc GUARDAUNOGGETTO
  3876.    Else If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="p"
  3877.     Proc GUARDAUNPERSONAGGIO
  3878.    End If 
  3879.   Else If EDIFICIVISIBILI>0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3880.    Print At(0,ULTIMALINEA);"Vuoi guardare un'edificio, il luogo od un personaggio (e/l/p) ?>";
  3881.    EDIFICIOLUOGOOPERSONAGGIO$=Input$(1)
  3882.    EDIFICIOLUOGOOPERSONAGGIO$=Lower$(EDIFICIOLUOGOOOPERSONAGGIO$)
  3883.    If EDIFICIOLUOGOOGGETTOOPERSONAGGIO$="e"
  3884.     Proc GUARDALEDIFICIO
  3885.    Else If EDIFICIOLUOGOOOPERSONAGGIO$="l"
  3886.     Proc GUARDAILLUOGO
  3887.    Else If EDIFICIOLUOGOOPERSONAGGIO$="p"
  3888.     Proc GUARDAUNPERSONAGGIO
  3889.    End If 
  3890.   Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI>0 and PERSONAGGIVISIBILI>0
  3891.    Print At(0,ULTIMALINEA);"Vuoi guardare il luogo, un oggetto od un personaggio (l/o/p) ?>";
  3892.    LUOGOOGGETTOOPERSONAGGIO$=Input$(1)
  3893.    LUOGOOGGETTOOPERSONAGGIO$=Lower$(LUOGOOGGETTOOPERSONAGGIO$)
  3894.    If LUOGOOGGETTOOPERSONAGGIO$="l"
  3895.     Proc GUARDAILLUOGO
  3896.    Else If LUOGOOGGETTOOPERSONAGGIO$="o"
  3897.     Proc GUARDAUNOGGETTO
  3898.    Else If LUOGOOGGETTOOPERSONAGGIO$="p"
  3899.     Proc GUARDAUNPERSONAGGIO
  3900.    End If 
  3901.   Else If EDIFICIVISIBILI=0 and OGGETTIVISIBILI=0 and PERSONAGGIVISIBILI>0
  3902.    Print At(0,ULTIMALINEA);"Vuoi guardare il luogo od un personaggio (l/p) ?>";
  3903.    LUOGOOPERSONAGGIO$=Input$(1)
  3904.    LUOGOOPERSONAGGIO$=Lower$(LUOGOOPERSONAGGIO$)
  3905.    If LUOGOOPERSONAGGIO$="l"
  3906.     Proc GUARDAILLUOGO
  3907.    Else If LUOGOOPERSONAGGIO$="p"
  3908.     Proc GUARDAUNPERSONAGGIO
  3909.    End If 
  3910.   End If 
  3911.  End If 
  3912. End Proc
  3913. Procedure GUARDAILLUOGO
  3914.  LUOGO$=NOMEL$(POSIZIONEP(0))
  3915.  DESCRIZIONE$=DESCRIZIONEL$(POSIZIONEP(0))
  3916.  COMPIUTAAZIONE=1
  3917.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il luogo ";LUOGO$;
  3918.  Proc _ASPETTA
  3919.  Proc MOSTRAMESSAGGIO["Descrizione del luogo "+LUOGO$,DESCRIZIONE$]
  3920. End Proc
  3921. Procedure GUARDALASTANZA
  3922.  E=POSIZIONEP(0)/$10000 : S=POSIZIONEP(0) mod $10000
  3923.  STANZA$=NOMES$(S,E)
  3924.  DESCRIZIONE$=DESCRIZIONES$(S,E)
  3925.  COMPIUTAAZIONE=1
  3926.  Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare la stanza ";STANZA$;
  3927.  Proc _ASPETTA
  3928.  Proc MOSTRAMESSAGGIO["Descrizione della stanza "+STANZA$,DESCRIZIONE$]
  3929. End Proc
  3930. Procedure GUARDALEDIFICIO
  3931.  For A=0 To NUMEROE
  3932.   If POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3933.    Inc EDIFICIVISIBILI : E=A
  3934.   End If 
  3935.  Next A
  3936.  If EDIFICIVISIBILI>1
  3937.   Locate 0,ULTIMALINEA : Input "Quale edificio vuoi guardare ?>";EDIFICIO$;
  3938.   Curs Off 
  3939.   If EDIFICIO$<>""
  3940.    For A=1 To NUMEROE
  3941.     If Lower$(EDIFICIO$)=Lower$(NOMEE$(A)) and POSIZIONEE(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0
  3942.      EDIFICIO$=NOMEE$(A)
  3943.      DESCRIZIONE$=DESCRIZIONEE$(A)
  3944.      COMPIUTAAZIONE=1
  3945.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$;
  3946.      Proc _ASPETTA
  3947.      Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3948.      Exit 
  3949.     End If 
  3950.    Next A
  3951.    If A=NUMEROP+1
  3952.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";EDIFICIO$;
  3953.     If _MUSICA=False
  3954.      Bell 1
  3955.     End If 
  3956.     Proc _ASPETTA
  3957.    End If 
  3958.   End If 
  3959.  Else 
  3960.   EDIFICIO$=NOMEE$(E)
  3961.   DESCRIZIONE$=DESCRIZIONEE$(E)
  3962.   COMPIUTAAZIONE=1
  3963.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'edificio ";EDIFICIO$
  3964.   Proc _ASPETTA
  3965.   Proc MOSTRAMESSAGGIO["Descrizione dell'edificio "+EDIFICIO$,DESCRIZIONE$]
  3966.  End If 
  3967. End Proc
  3968. Procedure GUARDAUNOGGETTO
  3969.  For A=0 To NUMEROO
  3970.   If POSIZIONEO(A)=POSIZIONEP(0)
  3971.    Inc OGGETTIVISIBILI : O=A
  3972.   Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3973.    Inc OGGETTIVISIBILI : O=A
  3974.   End If 
  3975.  Next A
  3976.  If OGGETTIVISIBILI>1
  3977.   Cls 
  3978.   For A=0 To NUMEROO
  3979.    If POSIZIONEO(A)=POSIZIONEP(0)
  3980.     If Btst(3,TIPOO(A))=False
  3981.      Print Str$(A+1)-" ";">";
  3982.      If Btst(1,TIPOO(A))=True
  3983.       Print NOMESRO$(CATEGORIAO(A))
  3984.      Else 
  3985.       Print NOMESCO$(CATEGORIAO(A))
  3986.      End If 
  3987.      Proc FONDOSCHERMOGIOCO
  3988.     End If 
  3989.    Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  3990.     Print Str$(A+1)-" ";">";
  3991.     If Btst(1,TIPOO(A))=True
  3992.      Print NOMESRO$(CATEGORIAO(A));
  3993.     Else 
  3994.      Print NOMESCO$(CATEGORIAO(A));
  3995.     End If 
  3996.     Print " (che stai trasportando)"
  3997.     Proc FONDOSCHERMOGIOCO
  3998.    End If 
  3999.   Next A
  4000.   Locate 0,ULTIMALINEA
  4001.   Input "Digita il numero dell'oggetto che vuoi guardare>";NUMEROOGGETTO$;
  4002.   Curs Off 
  4003.   If NUMEROOGGETTO$<>""
  4004.    NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  4005.    For A=0 To NUMEROO
  4006.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4007.      Exit 
  4008.     Else If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(3,TIPOO(A))=False and A=NUMEROOGGETTO-1
  4009.      Exit 
  4010.     End If 
  4011.    Next A
  4012.    If A=NUMEROO+1
  4013.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun oggetto col numero";NUMEROOGGETTO;
  4014.     If _MUSICA=False
  4015.      Bell 1
  4016.     End If 
  4017.     Proc _ASPETTA
  4018.    Else 
  4019.     OGGETTO$=NOMESCO$(CATEGORIAO(A))
  4020.     DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(A))
  4021.     COMPIUTAAZIONE=1
  4022.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4023.     Proc _ASPETTA
  4024.     Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4025.    End If 
  4026.   End If 
  4027.  Else 
  4028.   OGGETTO$=NOMESCO$(CATEGORIAO(O))
  4029.   DESCRIZIONE$=DESCRIZIONECO$(CATEGORIAO(O))
  4030.   COMPIUTAAZIONE=1
  4031.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare l'oggetto ";OGGETTO$;
  4032.   Proc _ASPETTA
  4033.   Proc MOSTRAMESSAGGIO["Descrizione dell'oggetto "+OGGETTO$,DESCRIZIONE$]
  4034.  End If 
  4035. End Proc
  4036. Procedure GUARDAUNPERSONAGGIO
  4037.  PERSONAGGIOVISIBILE=1
  4038.  For A=0 To NUMEROP
  4039.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIVISIBILI
  4040.  Next A
  4041.  If PERSONAGGIVISIBILI>1
  4042.   Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi guardare ?>";PERSONAGGIO$;
  4043.   Curs Off 
  4044.   If PERSONAGGIO$<>""
  4045.    PERSONAGGIO$=Lower$(PERSONAGGIO$)
  4046.    If PERSONAGGIO$="me"
  4047.     PERSONAGGIO$=NOMEP$(0)
  4048.     DESCRIZIONE$=DESCRIZIONEP$(0)
  4049.     COMPIUTAAZIONE=1
  4050.     Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4051.     Proc _ASPETTA
  4052.     Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4053.    Else 
  4054.     For A=1 To NUMEROP
  4055.      If PERSONAGGIO$=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4056.       PERSONAGGIO$=NOMEP$(A)
  4057.       DESCRIZIONE$=DESCRIZIONEP$(A)
  4058.       COMPIUTAAZIONE=1
  4059.       Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardare il personaggio ";PERSONAGGIO$;
  4060.       Proc _ASPETTA
  4061.       Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4062.       Exit 
  4063.      End If 
  4064.     Next A
  4065.     If A=NUMEROP+1
  4066.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4067.      If _MUSICA=False
  4068.       Bell 1
  4069.      End If 
  4070.      Proc _ASPETTA
  4071.     End If 
  4072.    End If 
  4073.   End If 
  4074.  Else 
  4075.   PERSONAGGIO$=NOMEP$(0)
  4076.   DESCRIZIONE$=DESCRIZIONEP$(0)
  4077.   COMPIUTAAZIONE=1
  4078.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di guardarti";
  4079.   Proc _ASPETTA
  4080.   Proc MOSTRAMESSAGGIO["Descrizione del personaggio "+PERSONAGGIO$,DESCRIZIONE$]
  4081.  End If 
  4082. End Proc
  4083. Procedure INFORMAZIONI
  4084.  Cls 
  4085.  TIC["Comandi utilizzabili:",0] : Print 
  4086.  If TEMP0DIATTRAVERSAMENTOP(0)=0
  4087.   Print "Premi A aspettare cinque minuti di gioco"
  4088.   Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4089.   Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4090.   Print "Premi E per esaminare un oggetto od un personaggio"
  4091.   Print "Premi G per guardare un'edificio, un luogo, un oggetto od un personaggio"
  4092.   Print "Premi I per vedere l'inventario del tuo personaggio"
  4093.   Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4094.   Print "Premi L per lasciare un oggetto, un personaggio o dei soldi"
  4095.   Print "Premi M per muoverti"
  4096.   Print "Premi P per prendere un oggetto, un personaggio o dei soldi"
  4097.   Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4098.   Print "Premi U per usare un oggetto su un altro oggetto o su un personaggio"
  4099.   Print "Premi X per smettere di giocare"
  4100.   Print "Premi Z per dormire"
  4101.  Else 
  4102.   Print "Premi A per aspettare cinque minuti di gioco"
  4103.   Print "Premi C per vedere le caratteristiche del tuo personaggio"
  4104.   Print "Premi D per dare un oggetto, un personaggio o dei soldi ad un personaggio"
  4105.   Print "Premi I per vedere l'inventario del tuo personaggio"
  4106.   Print "Premi J (Juke Box) per cambiare il motivo di sottofondo"
  4107.   Print "Premi M per muoverti"
  4108.   Print "Premi T per cambiare il modo di visualizzazione del tempo trascorso"
  4109.   Print "Premi X per smettere di giocare"
  4110.   Print "Premi Z per dormire"
  4111.  End If 
  4112.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4113. End Proc
  4114. Procedure INIZIALIZZALEVARIABILI
  4115.  MESSAGGIO1$=""
  4116.  For A=0 To NUMMASCO
  4117.   NOMESCO$(A)="Oggetto"+Str$(A)
  4118.   NOMEPCO$(A)="Oggetti"+Str$(A)
  4119.   NOMESRO$(A)="Resto oggetto"+Str$(A)
  4120.   NOMEPRO$(A)="Resti oggetti"+Str$(A)
  4121.   PESOCO(A)=5
  4122.   PESORESTOCO(A)=1
  4123.   DESCRIZIONECO$(A)="Descrizione della categoria"+Str$(A)+" degli oggetti"
  4124.  Next A
  4125.  For A=0 To NUMMASE
  4126.   NOMEE$(A)="Edificio"+Str$(A)
  4127.   DESCRIZIONEE$(A)="Descrizione dell'edificio"+Str$(A)
  4128.   For B=0 To NUMMASS
  4129.    NOMES$(B,A)="Stanza"+Str$(B)
  4130.    DESCRIZIONES$(B,A)="Descrizione della stanza"+Str$(A)
  4131.   Next B
  4132.  Next A
  4133.  For A=0 To NUMMASL
  4134.   NOMEL$(A)="Luogo"+Str$(A)
  4135.   DESCRIZIONEL$(A)="Descrizione del luogo"+Str$(A)
  4136.  Next A
  4137.  For A=0 To NUMMASP
  4138.   NOMEP$(A)="Personaggio"+Str$(A)
  4139.   C0STITUZIONEP(A)=1
  4140.   DESTREZZAP(A)=1
  4141.   F0RZAP(A)=1
  4142.   PESOP(A)=1
  4143.   RESISTENZAP(A)=1
  4144.   DESCRIZIONEP$(A)="Descrizione del personaggio"+Str$(A)
  4145.  Next A
  4146.  For A=0 To NUMMASR
  4147.   NOMER$(A)="Regione"+Str$(A)
  4148.  Next A
  4149. End Proc
  4150. Procedure INSERISCIPARAMETRIAZIONE[AZIONE,A,P]
  4151.  Cls 
  4152.  Print "Nome del personaggio";P;">";NOMEP$(P)
  4153.  Locate 0,ULTIMALINEA
  4154.  If AZIONE=1
  4155.   Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4156.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4157.  Else If AZIONE=2
  4158.   Input "Quanti oggetti vuole dare ai personaggi?>";PARA;
  4159.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4160.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4161.   PARABAZIONEP(A,P)=Param
  4162.  Else If AZIONE=3
  4163.   Input "Quanti oggetti vuole dare ai personaggi (1-65535) ?>";PARA;
  4164.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4165.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4166.   PARABAZIONEP(AZIONE,P)=Param
  4167.  Else If AZIONE=4
  4168.   Input "Quanti personaggi vuole dare ai personaggi (1-65535) ?>";PARA;
  4169.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4170.  Else If AZIONE=5
  4171.   Repeat 
  4172.    Input "Quale personaggio vuole dare ai personaggi (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4173.    Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4174.    Locate 0,ULTIMALINEA
  4175.   Until PARA<>P
  4176.  Else If AZIONE=6
  4177.   Repeat 
  4178.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4179.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4180.    Locate 0,ULTIMALINEA : Cline 
  4181.   Until PARA<>P
  4182.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4183.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4184.  Else If AZIONE=7
  4185.   Repeat 
  4186.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4187.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4188.    Locate 0,ULTIMALINEA
  4189.   Until PARA<>P
  4190.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4191.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4192.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4193.   PARACAZIONEP(A,P)=Param
  4194.  Else If AZIONE=8
  4195.   Repeat 
  4196.    Locate 0,ULTIMALINEA
  4197.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4198.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4199.    Locate 0,ULTIMALINEA : Cline 
  4200.   Until PARA<>P
  4201.   Input "Quanti oggetti vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4202.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4203.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4204.   PARACAZIONEP(A,P)=Param
  4205.  Else If AZIONE=9
  4206.   Repeat 
  4207.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4208.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4209.    Locate 0,ULTIMALINEA : Cline 
  4210.   Until PARA<>P
  4211.   Input "Quanti personaggi vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4212.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4213.  Else If AZIONE=10
  4214.   Repeat 
  4215.    Input "A quale personaggio vuole dare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4216.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=PARA
  4217.    Locate 0,ULTIMALINEA : Cline 
  4218.   Until PARA<>P
  4219.   Repeat 
  4220.    Input "Quale personaggio vuole dare al personaggio"+Str$(PARA)+" ?>";PARB;
  4221.    Proc LIMITI[PARB,0,NUMEROP] : PARABAZIONEP(A,P)=Param
  4222.    Locate 0,ULTIMALINEA : Cline 
  4223.   Until PARB<>PARA
  4224.  Else If AZIONE=11
  4225.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4226.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4227.  Else If AZIONE=12
  4228.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4229.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4230.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4231.   PARABAZIONEP(A,P)=Param
  4232.  Else If AZIONE=13
  4233.   Input "Quanti oggetti vuole lasciare (1-65535) ?>";PARA;
  4234.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4235.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4236.   PARABAZIONEP(A,P)=Param
  4237.  Else If AZIONE=14
  4238.   Input "Quanti personaggi vuole lasciare (1-65535) ?>";PARA;
  4239.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4240.  Else If AZIONE=15
  4241.   Repeat 
  4242.    Input "Quale personaggio vuole lasciare (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4243.    Proc LIMITI[PARA,1,65535] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4244.    Locate 0,ULTIMALINEA : Cline 
  4245.   Until PARA<>P
  4246.  Else If AZIONE=17
  4247.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4248.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4249.  Else If AZIONE=18
  4250.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4251.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4252.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4253.   PARABAZIONEP(A,P)=Param
  4254.  Else If AZIONE=19
  4255.   Input "Quanti oggetti vuole prendere (1-65535) ?>";PARA;
  4256.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4257.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4258.   PARABAZIONEP(A,P)=Param
  4259.  Else If AZIONE=20
  4260.   Input "Quanti personaggi vuole prendere (1-65535) ?>";PARA;
  4261.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4262.  Else If AZIONE=21
  4263.   Repeat 
  4264.    Input "Quale personaggio vuole prendere (1-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4265.    Proc LIMITI[PARA,1,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4266.    Locate 0,ULTIMALINEA : Cline 
  4267.   Until PARA<>P
  4268.  Else If AZIONE=23
  4269.   Repeat 
  4270.    Input "Quale personaggio vuole seguire (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4271.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4272.    Locate 0,ULTIMALINEA : Cline 
  4273.   Until PARA<>P
  4274.  Else If AZIONE=24
  4275.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4276.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4277.  Else If AZIONE=25
  4278.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4279.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4280.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4281.   PARABAZIONEP(A,P)=Param
  4282.  Else If AZIONE=26
  4283.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARA;
  4284.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4285.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4286.   PARABAZIONEP(A,P)=Param
  4287.  Else If AZIONE=27
  4288.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARA;
  4289.   Proc LIMITI[PARA,1,65535] : PARAAAZIONEP(A,P)=Param
  4290.  Else If AZIONE=28
  4291.   Repeat 
  4292.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARA;
  4293.    Proc LIMITI[PARA,0,NUMEROP] : PARA=Param : PARAAAZIONEP(A,P)=Param
  4294.    Locate 0,ULTIMALINEA : Cline 
  4295.   Until PARA<>P
  4296.  Else If AZIONE=29
  4297.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4298.   PARAAAZIONEP(A,P)=Param
  4299.   Locate 0,ULTIMALINEA : Cline 
  4300.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4301.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4302.  Else If AZIONE=30
  4303.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4304.   PARAAAZIONEP(A,P)=Param
  4305.   Locate 0,ULTIMALINEA : Cline 
  4306.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4307.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4308.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4309.   PARACAZIONEP(A,P)=Param
  4310.  Else If AZIONE=31
  4311.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4312.   PARAAAZIONEP(A,P)=Param
  4313.   Locate 0,ULTIMALINEA : Cline 
  4314.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4315.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4316.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4317.   PARACAZIONEP(A,P)=Param
  4318.  Else If AZIONE=32
  4319.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4320.   PARAAAZIONEP(A,P)=Param
  4321.   Locate 0,ULTIMALINEA : Cline 
  4322.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4323.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4324.  Else If AZIONE=33
  4325.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4326.   PARAAAZIONEP(A,P)=Param
  4327.   Locate 0,ULTIMALINEA : Cline 
  4328.   Repeat 
  4329.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4330.    Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4331.    Locate 0,ULTIMALINEA : Cline 
  4332.   Until PARB<>P
  4333.  Else If AZIONE=34
  4334.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4335.   PARAAAZIONEP(A,P)=Param
  4336.   Cls 
  4337.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4338.   Locate 0,ULTIMALINEA : Cline 
  4339.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4340.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4341.  Else If AZIONE=35
  4342.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4343.   PARAAAZIONEP(A,P)=Param
  4344.   Cls 
  4345.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4346.   Locate 0,ULTIMALINEA : Cline 
  4347.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4348.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4349.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4350.   PARACAZIONEP(A,P)=Param
  4351.  Else If AZIONE=36
  4352.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4353.   PARAAAZIONEP(A,P)=Param
  4354.   Cls 
  4355.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4356.   Locate 0,ULTIMALINEA : Cline 
  4357.   Input "Su quanti oggetti vuole usare (1-65535) ?>";PARB;
  4358.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4359.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4360.   PARACAZIONEP(A,P)=Param
  4361.  Else If AZIONE=37
  4362.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4363.   PARAAAZIONEP(A,P)=Param
  4364.   Cls 
  4365.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4366.   Locate 0,ULTIMALINEA : Cline 
  4367.   Input "Su quanti personaggi vuole usare (1-65535) ?>";PARB;
  4368.   Proc LIMITI[PARB,1,65535] : PARABAZIONEP(A,P)=Param
  4369.  Else If AZIONE=38
  4370.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4371.   PARAAAZIONEP(AZIONE,P)=Param
  4372.   Cls 
  4373.   Print "Nome del personaggio";P;">";NOMEP$(P)
  4374.   Locate 0,ULTIMALINEA : Cline 
  4375.   Repeat 
  4376.    Input "Su quale personaggio vuole usare (0-"+Str$(NUMEROP)-" "+") ?>";PARB;
  4377.    Proc LIMITI[PARB,0,NUMEROP] : PARB=Param : PARABAZIONEP(A,P)=Param
  4378.    Locate 0,ULTIMALINEA : Cline 
  4379.   Until PARB<>P
  4380.  Else If AZIONE=40
  4381.   Proc MOSTRAOGGETTOPERINSERIMENTO[P]
  4382.   PARAAAZIONEP(A,P)=Param
  4383.  Else If AZIONE=41
  4384.   Proc MOSTRACATEGORIAPERINSERIMENTO[P]
  4385.   PARAAAZIONEP(A,P)=Param
  4386.  End If 
  4387. End Proc
  4388. Procedure _INTERFACCIA
  4389.  A=Dialog Box(_INTERFACCIA$)
  4390. End Proc
  4391. Procedure INVENTARIO
  4392.  Cls 
  4393.  Print "Inventario degli oggetti e dei personaggi trasportati da ";NOMEP$(0);">"
  4394.  For A=0 To NUMEROO
  4395.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4396.    OGGETTIPRESENTI=True
  4397.   End If 
  4398.  Next A
  4399.  If SOLDIP(0)>0 Then OGGETTIPRESENTI=True
  4400.  If OGGETTIPRESENTI=True
  4401.   For A=0 To NUMEROCO
  4402.    If OGGETTODELPERSONAGGIO0(A)>0
  4403.     Print Str$(OGGETTODELPERSONAGGIO0(A))-" ";" ";
  4404.     If OGGETTODELPERSONAGGIO0(A)=1
  4405.      Print NOMESCO$(A)
  4406.     Else 
  4407.      Print NOMEPCO$(A)
  4408.     End If 
  4409.     Proc FONDOSCHERMOGIOCO
  4410.    End If 
  4411.    If RESTODELPERSONAGGIO0(A)>0
  4412.     Print Str$(RESTODELPERSONAGGIO0(A))-" ";" ";
  4413.     If RESTODELPERSONAGGIO0(A)=1
  4414.      Print NOMESRO$(A)
  4415.     Else 
  4416.      Print NOMEPRO$(A)
  4417.     End If 
  4418.     Proc FONDOSCHERMOGIOCO
  4419.    End If 
  4420.   Next A
  4421.   If SOLDIP(0)>0
  4422.    Print Str$(SOLDIP(0))-" ";" ";
  4423.    If SOLDIP(0)=1
  4424.     Print "soldo"
  4425.    Else 
  4426.     Print "soldi"
  4427.    End If 
  4428.    Proc FONDOSCHERMOGIOCO
  4429.   End If 
  4430.  Else 
  4431.   Print "Nessun oggetto trasportato"
  4432.  End If 
  4433.  For A=1 To NUMEROP
  4434.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True Then PERSONAGGIPRESENTI=True
  4435.  Next A
  4436.  If PERSONAGGIPRESENTI=True
  4437.   Print "Personaggi trasportati da ";NOMEP$(0);">"
  4438.   For A=1 To NUMEROP
  4439.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4440.     Print NOMEP$(A)
  4441.    End If 
  4442.    Proc FONDOSCHERMOGIOCO
  4443.   Next A
  4444.  Else 
  4445.   Print "Nessun personaggio trasportato"
  4446.  End If 
  4447.  If OGGETTIPRESENTI=True or PERSONAGGIPRESENTI=True
  4448.   Print "Peso totale degli oggetti e dei personaggi trasportati>";
  4449.   If PESONETTOP(0)>999
  4450.    PESOOEPDELP0=PESONETTOP(0)/1000
  4451.    Print Str$(PESOOEPDELP0)-" ";" ";
  4452.    If PESOOEPDELP0=1
  4453.     Print "chilo";
  4454.    Else 
  4455.     Print "chili";
  4456.    End If 
  4457.    PESOOEPDELP0=PESONETTOP(0) mod 1000
  4458.    If PESOOEPDELP0>0
  4459.     Print " e";PESOOEPDELP0;" ";
  4460.     If PESOOEPDELP0=1
  4461.      Print "grammo"
  4462.     Else 
  4463.      Print "grammi"
  4464.     End If 
  4465.    Else 
  4466.     Print 
  4467.    End If 
  4468.   Else 
  4469.    PESOOEPDELP0=PESONETTOP(0)
  4470.    Print Str$(PESOOEPDELP0)-" ";" ";
  4471.    If PESOOEPDELP0=1
  4472.     Print "grammo"
  4473.    Else 
  4474.     Print "grammi"
  4475.    End If 
  4476.   End If 
  4477.  End If 
  4478.  Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  4479. End Proc
  4480. Procedure LASCIA
  4481.  If TEMP0DIATTRAVERSAMENTOP(0)>0
  4482.   For A=1 To NUMEROP
  4483.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4484.     Inc PERSONAGGI
  4485.    End If 
  4486.   Next A
  4487.   If PERSONAGGI>0
  4488.    Proc LASCIAUNPERSONAGGIO
  4489.   Else 
  4490.    Print At(0,ULTIMALINEA);"Non hai personaggi da lasciare";
  4491.    If _MUSICA=False
  4492.     Bell 1
  4493.    End If 
  4494.    Proc _ASPETTA
  4495.    Pop Proc
  4496.   End If 
  4497.  Else 
  4498.   For A=1 To NUMEROP
  4499.    If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4500.     Inc PERSONAGGI
  4501.    End If 
  4502.   Next A
  4503.  End If 
  4504.  For A=0 To NUMEROCO
  4505.   If OGGETTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4506.   If RESTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  4507.  Next A
  4508.  If SOLDIP(0)>0 Then SOLDI=True
  4509.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  4510.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  4511.   OGGETTOOPERSONAGGIO$=Input$(1)
  4512.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4513.   If OGGETTOOPERSONAGGIO$="o"
  4514.    Proc LASCIAUNOGGETTO
  4515.   Else If OGGETTOOPERSONAGGIO$="p"
  4516.    Proc LASCIAUNPERSONAGGIO
  4517.   Else If OGGETTOOPERSONAGGIO$="s"
  4518.    Proc LASCIADEISOLDI
  4519.   End If 
  4520.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  4521.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto o dei soldi (o/s) ?>";
  4522.   OGGETTOOSOLDI$=Input$(1)
  4523.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  4524.   If OGGETTOOSOLDI$="o"
  4525.    Proc LASCIAUNOGGETTO
  4526.   Else If OGGETTOOSOLDI$="s"
  4527.    Proc LASCIADEISOLDI
  4528.   End If 
  4529.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  4530.   Print At(0,ULTIMALINEA);"Vuoi lasciare un personaggio o dei soldi (p/s) ?>";
  4531.   PERSONAGGIOOSOLDI$=Input$(1)
  4532.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  4533.   If PERSONAGGIOOSOLDI$="p"
  4534.    Proc LASCIAUNPERSONAGGIO
  4535.   Else If PERSONAGGIOOSOLDI$="s"
  4536.    Proc LASCIADEISOLDI
  4537.   End If 
  4538.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  4539.   Proc LASCIADEISOLDI
  4540.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  4541.   Print At(0,ULTIMALINEA);"Vuoi lasciare un oggetto od un personaggio (o/p) ?>";
  4542.   OGGETTOOPERSONAGGIO$=Input$(1)
  4543.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  4544.   If OGGETTOOPERSONAGGIO$="o"
  4545.    Proc LASCIAUNOGGETTO
  4546.   Else If OGGETTOOPERSONAGGIO$="p"
  4547.    Proc LASCIAUNPERSONAGGIO
  4548.   End If 
  4549.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  4550.   Proc LASCIAUNOGGETTO
  4551.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  4552.   Proc LASCIAUNPERSONAGGIO
  4553.  Else 
  4554.   Print At(0,ULTIMALINEA);"Non hai oggetti,personaggi o soldi da lasciare";
  4555.   If _MUSICA=False
  4556.    Bell 1
  4557.   End If 
  4558.   Proc _ASPETTA
  4559.  End If 
  4560. End Proc
  4561. Procedure LASCIAAO[AZIONE,P]
  4562.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4563.  For A=0 To NUMEROO
  4564.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4565.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4566.    B=A
  4567.   End If 
  4568.  Next A
  4569.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4570.   Pop Proc
  4571.  End If 
  4572.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4573.   A=B
  4574.  Else 
  4575.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4576.   B=0
  4577.   For A=0 To NUMEROO
  4578.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  4579.     OGGETTODELPERSONAGGIOP(B)=A
  4580.     Inc B
  4581.    End If 
  4582.   Next A
  4583.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4584.  End If 
  4585.  POSIZIONEO(A)=POSIZIONEP(P)
  4586.  If Btst(1,TIPOO(A))=True
  4587.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4588.  Else 
  4589.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4590.  End If 
  4591.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4592.   For B=0 To NUMEROO
  4593.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4594.     If Btst(1,TIPOO(B))=True
  4595.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4596.     Else 
  4597.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4598.     End If 
  4599.    End If 
  4600.   Next B
  4601.   For B=1 To NUMEROP
  4602.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4603.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4604.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4605.    End If 
  4606.   Next B
  4607.  End If 
  4608.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4609.   Print NOMEP$(P);" lascia 1 ";
  4610.   If Btst(1,TIPOO(A))=True
  4611.    Print NOMESRO$(CATEGORIAO(A))
  4612.   Else 
  4613.    Print NOMESCO$(CATEGORIAO(A))
  4614.   End If 
  4615.  End If 
  4616.  Dec PARAAAZIONEP(AZIONE,P)
  4617.  If PARAAAZIONEP(AZIONE,P)=0
  4618.   FINEA(AZIONE,P)=True
  4619.  End If 
  4620. End Proc
  4621. Procedure LASCIAAOB[AZIONE,P]
  4622.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4623.  For A=0 To NUMEROO
  4624.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4625.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4626.    B=A
  4627.   End If 
  4628.  Next A
  4629.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4630.   Pop Proc
  4631.  End If 
  4632.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4633.   A=B
  4634.  Else 
  4635.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4636.   B=0
  4637.   For A=0 To NUMEROO
  4638.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  4639.     OGGETTODELPERSONAGGIOP(B)=A
  4640.     Inc B
  4641.    End If 
  4642.   Next A
  4643.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4644.  End If 
  4645.  POSIZIONEO(A)=POSIZIONEP(P)
  4646.  If Btst(1,TIPOO(A))=True
  4647.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4648.  Else 
  4649.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4650.  End If 
  4651.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4652.   For B=0 To NUMEROO
  4653.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4654.     If Btst(1,TIPOO(B))=True
  4655.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4656.     Else 
  4657.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4658.     End If 
  4659.    End If 
  4660.   Next B
  4661.   For B=1 To NUMEROP
  4662.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4663.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4664.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4665.    End If 
  4666.   Next B
  4667.  End If 
  4668.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4669.   Print NOMEP$(P);" lascia 1 ";
  4670.   If Btst(1,TIPOO(A))=True
  4671.    Print NOMESRO$(CATEGORIAO(A))
  4672.   Else 
  4673.    Print NOMESCO$(CATEGORIAO(A))
  4674.   End If 
  4675.  End If 
  4676.  Dec PARAAAZIONEP(AZIONE,P)
  4677.  If PARAAAZIONEP(AZIONE,P)=0
  4678.   FINEA(AZIONE,P)=True
  4679.  End If 
  4680. End Proc
  4681. Procedure LASCIAAOTB[AZIONE,P]
  4682.  NUMEROOGGETTODELPERSONAGGIOP=-1
  4683.  For A=0 To NUMEROO
  4684.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4685.    Inc NUMEROOGGETTODELPERSONAGGIOP
  4686.    B=A
  4687.   End If 
  4688.  Next A
  4689.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  4690.   Pop Proc
  4691.  End If 
  4692.  If NUMEROOGGETTODELPERSONAGGIOP=0
  4693.   A=B
  4694.  Else 
  4695.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  4696.   B=0
  4697.   For A=0 To NUMEROO
  4698.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  4699.     OGGETTODELPERSONAGGIOP(B)=A
  4700.     Inc B
  4701.    End If 
  4702.   Next A
  4703.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  4704.  End If 
  4705.  POSIZIONEO(A)=POSIZIONEP(P)
  4706.  If Btst(1,TIPOO(A))=True
  4707.   Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  4708.  Else 
  4709.   Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  4710.  End If 
  4711.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  4712.   For B=0 To NUMEROO
  4713.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  4714.     If Btst(1,TIPOO(B))=True
  4715.      Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  4716.     Else 
  4717.      Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  4718.     End If 
  4719.    End If 
  4720.   Next B
  4721.   For B=1 To NUMEROP
  4722.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  4723.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESOP(B)*1000
  4724.     Add PESONETTOP(PERSONAGGIOTROVATO),-PESONETTOP(B)
  4725.    End If 
  4726.   Next B
  4727.  End If 
  4728.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(2,TIPOP(0))=False
  4729.   Print NOMEP$(P);" lascia 1 ";
  4730.   If Btst(1,TIPOO(A))=True
  4731.    Print NOMESRO$(CATEGORIAO(A))
  4732.   Else 
  4733.    Print NOMESCO$(CATEGORIAO(A))
  4734.   End If 
  4735.  End If 
  4736.  Dec PARAAAZIONEP(AZIONE,P)
  4737.  If PARAAAZIONEP(AZIONE,P)=0
  4738.   FINEA(AZIONE,P)=True
  4739.  End If 
  4740. End Proc
  4741. Procedure LASCIAAP[AZIONE,P]
  4742.  For A=1 To NUMEROP
  4743.   If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4744.    POSIZIONEP(A)=POSIZIONEP(P)
  4745.    TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4746.    Bclr 0,TIPOP(A)
  4747.    Add PESONETTOP(P),-PESOP(A)*1000
  4748.    Add PESONETTOP(P),-PESONETTOP(A)
  4749.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4750.     Print NOMEP$(P);" lascia ";NOMEP$(A)
  4751.    End If 
  4752.    Dec PARABAZIONEP(AZIONE,P)
  4753.    If PARABAZIONEP(AZIONE,P)=0
  4754.     FINEA(AZIONE,P)=True
  4755.    End If 
  4756.    Exit 
  4757.   End If 
  4758.  Next A
  4759. End Proc
  4760. Procedure LASCIADEISOLDI
  4761.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi lasciare (0-"+Str$(SOLDIP(0))-" "+") ?>";SOLDI$;
  4762.  Curs Off 
  4763.  If SOLDI$<>""
  4764.   SOLDI=Val(SOLDI$)
  4765.   Proc LIMITI[SOLDI,0,SOLDIP(0)] : SOLDI=Param
  4766.   If SOLDI>0
  4767.    Add SOLDIP(0),-SOLDI
  4768.    E=POSIZIONEP(0)/$10000
  4769.    If E>0
  4770.     S=POSIZIONEP(0) mod $10000
  4771.     Add SOLDIS(S,E-1),SOLDI
  4772.    Else 
  4773.     Add SOLDIL(POSIZIONEP(0)),SOLDI
  4774.    End If 
  4775.    Add PESONETTOP(0),-SOLDI*PESOS
  4776.    COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4777.    Print "Hai deciso di lasciare";SOLDI;
  4778.    If SOLDI=1
  4779.     Print " soldo";
  4780.    Else 
  4781.     Print " soldi";
  4782.    End If 
  4783.    Proc _ASPETTA
  4784.   End If 
  4785.  End If 
  4786. End Proc
  4787. Procedure LASCIAOGGETTO[O]
  4788.  POSIZIONEO(O)=POSIZIONEP(0)
  4789.  If Btst(1,TIPOO(O))=True
  4790.   Dec RESTODELPERSONAGGIO0(CATEGORIAO(O))
  4791.   Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(O))
  4792.  Else 
  4793.   Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  4794.   Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  4795.   Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  4796.  End If 
  4797.  If Btst(1,TIPOCO(CATEGORIAO(O)))=True
  4798.   For A=0 To NUMEROO
  4799.    If POSIZIONEO(A)=-1-O and Btst(0,TIPOO(A))=False
  4800.     If Btst(1,TIPOO(A))=True
  4801.      Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(A))
  4802.     Else 
  4803.      Add PESONETTOP(0),-PESOCO(CATEGORIAO(A))
  4804.     End If 
  4805.    End If 
  4806.   Next A
  4807.   For A=1 To NUMEROP
  4808.    If POSIZIONEP(A)=-1-O and Btst(0,TIPOP(A))=False
  4809.     Add PESONETTOP(0),-PESOP(A)*1000
  4810.     Add PESONETTOP(0),-PESONETTOP(A)
  4811.    End If 
  4812.   Next A
  4813.  End If 
  4814.  COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4815.  Print "Hai deciso di lasciare 1 ";
  4816.  If Btst(1,TIPOO(O))=True
  4817.   Print NOMESRO$(CATEGORIAO(O));
  4818.  Else 
  4819.   Print NOMESCO$(CATEGORIAO(O));
  4820.  End If 
  4821.  Proc _ASPETTA
  4822. End Proc
  4823. Procedure LASCIAPA[AZIONE,P]
  4824.  A=PARAAAZIONEP(AZIONE,P)
  4825.  If POSIZIONEP(A)=-1-P and Btst(0,TIPOP(A))=True
  4826.   POSIZIONEP(A)=POSIZIONEP(P)
  4827.   TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4828.   Bclr 0,TIPOP(A)
  4829.   Add PESONETTOP(P),-PESOP(A)*1000
  4830.   Add PESONETTOP(P),-PESONETTOP(A)
  4831.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  4832.    Print NOMEP$(P);" lascia ";NOMEP$(A)
  4833.   End If 
  4834.   FINEA(AZIONE,P)=True
  4835.  End If 
  4836. End Proc
  4837. Procedure LASCIAPASSAREILTEMPO
  4838.  COMPIUTAAZIONE=5
  4839.  Print At(0,ULTIMALINEA);"Hai deciso di aspettare cinque minuti";
  4840.  Proc _ASPETTA
  4841. End Proc
  4842. Procedure LASCIAUNOGGETTO
  4843.  For A=0 To NUMEROCO
  4844.   If OGGETTODELPERSONAGGIO0(A)>0
  4845.    Inc CATEGORIEOGGETTI
  4846.   End If 
  4847.   If RESTODELPERSONAGGIO0(A)>0
  4848.    Inc CATEGORIEOGGETTI
  4849.   End If 
  4850.  Next A
  4851.  OGGETTODIFENSIVOINDOSSATO=-1
  4852.  For A=0 To NUMEROO
  4853.   If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4854.    If Btst(2,TIPOO(A))=True
  4855.     OGGETTODIFENSIVOINDOSSATO=A
  4856.    Else 
  4857.     Inc OGGETTIERESTIDIFENSIVINONINDOSSATI
  4858.     If Btst(1,TIPOO(A))=True
  4859.      Inc RESTIDIFENSIVINONINDOSSATI
  4860.     Else 
  4861.      Inc OGGETTIDIFENSIVINONINDOSSATI
  4862.     End If 
  4863.    End If 
  4864.   End If 
  4865.  Next A
  4866.  If CATEGORIEOGGETTI>0
  4867.   If CATEGORIEOGGETTI>1
  4868.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi lasciare ?>";OGGETTO$;
  4869.    Curs Off 
  4870.    If OGGETTO$<>""
  4871.     For A=0 To NUMEROO
  4872.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4873.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  4874.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4875.         If OGGETTODIFENSIVOINDOSSATO>-1
  4876.          If OGGETTIDIFENSIVINONINDOSSATI=0
  4877.           Bclr 2,TIPOO(A)
  4878.           Proc LASCIAOGGETTO[A] : Exit 
  4879.          Else 
  4880.           If A<>OGGETTODIFENSIVOINDOSSATO
  4881.            Proc LASCIAOGGETTO[A] : Exit 
  4882.           Else 
  4883.            If RESTIDIFENSIVINONINDOSSATI>0
  4884.             Bclr 2,TIPOO(A)
  4885.             Proc LASCIAOGGETTO[A] : Exit 
  4886.            End If 
  4887.           End If 
  4888.          End If 
  4889.         Else 
  4890.          Proc LASCIAOGGETTO[A] : Exit 
  4891.         End If 
  4892.        Else 
  4893.         Proc LASCIAOGGETTO[A] : Exit 
  4894.        End If 
  4895.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  4896.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4897.         If OGGETTODIFENSIVOINDOSSATO>-1
  4898.          If RESTIDIFENSIVINONINDOSSATI=0
  4899.           Bclr 2,TIPOO(A)
  4900.           Proc LASCIAOGGETTO[A] : Exit 
  4901.          Else 
  4902.           If A<>OGGETTODIFENSIVOINDOSSATO
  4903.            Proc LASCIAOGGETTO[A] : Exit 
  4904.           Else 
  4905.            If OGGETTIDIFENSIVINONINDOSSATI>0
  4906.             Bclr 2,TIPOO(A)
  4907.             Proc LASCIAOGGETTO[A] : Exit 
  4908.            End If 
  4909.           End If 
  4910.          End If 
  4911.         Else 
  4912.          Proc LASCIAOGGETTO[A] : Exit 
  4913.         End If 
  4914.        Else 
  4915.         Proc LASCIAOGGETTO[A] : Exit 
  4916.        End If 
  4917.       End If 
  4918.      End If 
  4919.     Next A
  4920.     If A=NUMEROO+1
  4921.      Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  4922.      If _MUSICA=False
  4923.       Bell 1
  4924.      End If 
  4925.      Proc _ASPETTA
  4926.     End If 
  4927.    End If 
  4928.   Else 
  4929.    For A=0 To NUMEROO
  4930.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  4931.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True
  4932.       If OGGETTODIFENSIVOINDOSSATO>-1
  4933.        If OGGETTIERESTIDIFENSIVINONINDOSSATI=0
  4934.         Bclr 2,TIPOO(A)
  4935.         Proc LASCIAOGGETTO[A] : Exit 
  4936.        Else 
  4937.         If A<>OGGETTODIFENSIVOINDOSSATO
  4938.          Proc LASCIAOGGETTO[A] : Exit 
  4939.         End If 
  4940.        End If 
  4941.       Else 
  4942.        Proc LASCIAOGGETTO[A] : Exit 
  4943.       End If 
  4944.      Else 
  4945.       Proc LASCIAOGGETTO[A] : Exit 
  4946.      End If 
  4947.     End If 
  4948.    Next A
  4949.   End If 
  4950.  End If 
  4951. End Proc
  4952. Procedure LASCIAUNPERSONAGGIO
  4953.  For A=1 To NUMEROP
  4954.   If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4955.    Inc PERSONAGGI
  4956.   End If 
  4957.  Next A
  4958.  If PERSONAGGI>0
  4959.   If PERSONAGGI>1
  4960.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi lasciare ?>";PERSONAGGIO$;
  4961.    Curs Off 
  4962.    If PERSONAGGIO$<>""
  4963.     For A=0 To NUMEROP
  4964.      If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4965.       POSIZIONEP(A)=POSIZIONEP(0)
  4966.       TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4967.       DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4968.       Add PESONETTOP(0),-PESOP(A)*1000
  4969.       Add PESONETTOP(0),-PESONETTOP(A)
  4970.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4971.       Print "Hai deciso di lasciare ";NOMEP$(A);
  4972.       Proc _ASPETTA : Exit 
  4973.      End If 
  4974.     Next A
  4975.     If A=NUMEROP+1
  4976.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  4977.      If _MUSICA=False
  4978.       Bell 1
  4979.      End If 
  4980.      Proc _ASPETTA
  4981.     End If 
  4982.    End If 
  4983.   Else 
  4984.    For A=0 To NUMEROP
  4985.     If POSIZIONEP(A)=-1 and Btst(0,TIPOP(A))=True
  4986.      POSIZIONEP(A)=POSIZIONEP(0)
  4987.      TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0)
  4988.      DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  4989.      Add PESONETTOP(0),-PESOP(A)*1000
  4990.      Add PESONETTOP(0),-PESONETTOP(A)
  4991.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  4992.      Print "Hai deciso di lasciare ";NOMEP$(A);
  4993.      Proc _ASPETTA : Exit 
  4994.     End If 
  4995.    Next A
  4996.   End If 
  4997.  End If 
  4998. End Proc
  4999. Procedure LIMITI[NUMERO,LIMITEMINIMO,LIMITEMASSIMO]
  5000.  '-> Limiti by Stefano Regattin 
  5001.  'i> 19 maggio 1996 
  5002.  'm> 12 giugno 1996 
  5003.  '--------------------------------------------------------
  5004.  'La procedura equivale alle seguenti linee di programma: 
  5005.  ' If NUMERO<LIMITEMINIMO Then NUMERO=LIMITEMINIMO
  5006.  ' If NUMERO>LIMITEMASSIMO Then NUMERO=LIMITEMASSIMO
  5007.  'Se LIMITEMINIMO ï¿½ maggiore di LIMITEMASSIMO ne scambia i valori 
  5008.  '----------------------------------------------------------------  
  5009.  If LIMITEMINIMO>LIMITEMASSIMO Then Swap LIMITEMINIMO,LIMITEMASSIMO
  5010.  NUMERO=Max(Min(NUMERO,LIMITEMASSIMO),LIMITEMINIMO)
  5011. End Proc[NUMERO]
  5012. Procedure LUOGO
  5013.  Print "Regione>";NOMER$(REGIONEL(POSIZIONEP(0)))
  5014.  Print "Luogo>";NOMEL$(POSIZIONEP(0))
  5015.  Print "Direzioni visibili>";
  5016.  For A=0 To 9
  5017.   DREZIONE=DREZIONEL(A,POSIZIONEP(0)) mod $10000
  5018.   If DREZIONE<$FFFF Then Print DREZIONEL$(A);" ";
  5019.  Next A
  5020.  Print 
  5021. End Proc
  5022. Procedure MESSAGGIO[MESSAGGIO$]
  5023.  Locate 0,ULTIMALINEA
  5024.  If CARATTEREMESSAGGIO=0
  5025.   Ink 0,1 : Text 0,254,Space$(80) : Ink 1,0
  5026.   'Inverse On : Print Space$(80);
  5027.  End If 
  5028.  Hscroll 1
  5029.  Add CARATTEREMESSAGGIO,1,1 To Len(MESSAGGIO$)
  5030.  Ink 0,1
  5031.  'Inverse On  
  5032.  Text 631,ULTIMALINEA*8-1+7,Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1)
  5033.  'Print At(79,ULTIMALINEA);Mid$(MESSAGGIO$,CARATTEREMESSAGGIO,1); 
  5034.  Ink 1,0
  5035.  'Inverse Off 
  5036.  Wait 5
  5037. End Proc
  5038. Procedure M0DCATEGORIADEGLIOGGETTI
  5039.  Cls 
  5040.  Print "Nome singolare della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5041.  Locate 0,ULTIMALINEA : Input "Nuovo nome singolare della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5042.  If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMESCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5043.  Cls 
  5044.  Print "Nome plurale della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  5045.  Locate 0,ULTIMALINEA : Input "Nuovo nome plurale della categoria degli oggetti>";NOMECATEGORIADEGLIOGGETTI$;
  5046.  If NOMECATEGORIADEGLIOGGETTI$<>"" Then NOMEPCO$(CATEGORIADEGLIOGGETTI)=NOMECATEGORIADEGLIOGGETTI$
  5047.  Cls 
  5048.  Print "Nome singolare del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESRO$(CATEGORIADEGLIOGGETTI)
  5049.  Locate 0,ULTIMALINEA : Input "Nuovo nome singolare del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5050.  If NOMERESTODEGLIOGGETTI$<>"" Then NOMESRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5051.  Cls 
  5052.  Print "Nome plurale del resto degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  5053.  Locate 0,ULTIMALINEA : Input "Nuovo nome plurale del resto degli oggetti>";NOMERESTODEGLIOGGETTI$;
  5054.  If NOMERESTODEGLIOGGETTI$<>"" Then NOMEPRO$(CATEGORIADEGLIOGGETTI)=NOMERESTODEGLIOGGETTI$
  5055.  Cls 
  5056.  PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  5057.  Print "Peso della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESOOGGETTO)-" ";" ";
  5058.  If PESOOGGETTO=1
  5059.   Print "grammo"
  5060.  Else 
  5061.   Print "grammi"
  5062.  End If 
  5063.  Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria degli oggetti in grammi>";PESOCATEGORIADEGLIOGGETTI$;
  5064.  If PESOCATEGORIADEGLIOGGETTI$<>"" Then PESOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEGLIOGGETTI$)
  5065.  Cls 
  5066.  PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  5067.  Print "Peso della categoria dei resti degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PESORESTOOGGETTO)-" ";" ";
  5068.  If PESORESTOOGGETTO=1
  5069.   Print "grammo"
  5070.  Else 
  5071.   Print "grammi"
  5072.  End If 
  5073.  Locate 0,ULTIMALINEA : Input "Nuovo peso della categoria dei resti degli oggetti in grammi>";PESOCATEGORIADEIRESTIDEGLIOGGETTI$;
  5074.  If PESOCATEGORIADEIRESTIDEGLIOGGETTI$<>"" Then PESORESTOCO(CATEGORIADEGLIOGGETTI)=Val(PESOCATEGORIADEIRESTIDEGLIOGGETTI$)
  5075.  Curs Off 
  5076.  Cls 
  5077.  Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";
  5078.  Print NOMESCO$(CATEGORIADEGLIOGGETTI)
  5079.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano commestibili (s/n) ?>";
  5080.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5081.  If RISPOSTA$="s"
  5082.   Bset 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5083.  Else 
  5084.   Bclr 0,TIPOCO(CATEGORIADEGLIOGGETTI)
  5085.  End If 
  5086.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano contenitori (s/n) ?>";
  5087.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5088.  If RISPOSTA$="s"
  5089.   Bset 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5090.  Else 
  5091.   If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True
  5092.    For A=0 To NUMEROO
  5093.     For B=0 To NUMEROO
  5094.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False and A<>B
  5095.       POSIZIONEO(B)=POSIZIONEO(A)
  5096.      End If 
  5097.     Next B
  5098.     For B=0 To NUMEROP
  5099.      If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  5100.       POSIZIONEP(B)=POSIZIONEO(A)
  5101.      End If 
  5102.     Next B
  5103.    Next A
  5104.   End If 
  5105.   Bclr 1,TIPOCO(CATEGORIADEGLIOGGETTI)
  5106.  End If 
  5107.  Locate 0,ULTIMALINEA : Cline 
  5108.  Print "Vuoi che gli oggetti siano difensivi (s/n) ?>";
  5109.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5110.  If RISPOSTA$="s"
  5111.   Bset 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5112.  Else 
  5113.   Bclr 2,TIPOCO(CATEGORIADEGLIOGGETTI)
  5114.  End If 
  5115.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano leggibili (s/n) ?>";
  5116.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5117.  If RISPOSTA$="s"
  5118.   Bset 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5119.  Else 
  5120.   Bclr 3,TIPOCO(CATEGORIADEGLIOGGETTI)
  5121.  End If 
  5122.  Locate 0,ULTIMALINEA : Cline 
  5123.  Print "Vuoi che gli oggetti siano liquidi o solidi (l/s) ?>";
  5124.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5125.  If RISPOSTA$="l"
  5126.   Bset 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5127.  Else 
  5128.   Bclr 4,TIPOCO(CATEGORIADEGLIOGGETTI)
  5129.  End If 
  5130.  Locate 0,ULTIMALINEA : Cline 
  5131.  Print "Vuoi che gli oggetti siano magici (s/n) ?>";
  5132.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5133.  If RISPOSTA$="s"
  5134.   Bset 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5135.  Else 
  5136.   Bclr 5,TIPOCO(CATEGORIADEGLIOGGETTI)
  5137.  End If 
  5138.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano offensivi (s/n) ?>";
  5139.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5140.  If RISPOSTA$="s"
  5141.   Bset 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5142.  Else 
  5143.   Bclr 6,TIPOCO(CATEGORIADEGLIOGGETTI)
  5144.  End If 
  5145.  For A=0 To NUMEROO
  5146.   If POSIZIONEO(A)<0
  5147.    NONRESIDENTI=True
  5148.   End If 
  5149.  Next A
  5150.  If NONRESIDENTI=True
  5151.   Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano residenti (s/n) ?>";
  5152.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5153.   If RISPOSTA$="s"
  5154.    Bset 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5155.   Else 
  5156.    Bclr 7,TIPOCO(CATEGORIADEGLIOGGETTI)
  5157.   End If 
  5158.  End If 
  5159.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano trasferibili (s/n) ?>";
  5160.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5161.  If RISPOSTA$="s"
  5162.   Bset 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5163.  Else 
  5164.   Bclr 8,TIPOCO(CATEGORIADEGLIOGGETTI)
  5165.  End If 
  5166.  Locate 0,ULTIMALINEA : Cline 
  5167.  Print "Vuoi che gli oggetti siano trasparenti (s/n) ?>";
  5168.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5169.  If RISPOSTA$="s"
  5170.   Bset 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5171.  Else 
  5172.   Bclr 9,TIPOCO(CATEGORIADEGLIOGGETTI)
  5173.  End If 
  5174.  Print At(0,ULTIMALINEA);"Vuoi che gli oggetti siano vincolati ad un oggetto (s/n) ?>";
  5175.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  5176.  If RISPOSTA$="s"
  5177.   Repeat 
  5178.    Cls 
  5179.    Print "Nome della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";NOMESCO$(CATEGORIADEGLIOGGETTI)
  5180.    Print At(0,ULTIMALINEA-1);"Scegli l'oggetto vincolante>";NOMESCO$(CO)
  5181.    Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto vincolante Spazio conferma",ULTIMALINEA]
  5182.    Repeat 
  5183.     TASTOPREMUTO$=Inkey$
  5184.    Until TASTOPREMUTO$<>""
  5185.    If TASTOPREMUTO$=Cup$ : Add CO,-1,0 To NUMEROCO : End If 
  5186.    If TASTOPREMUTO$=Cdown$ : Add CO,1,0 To NUMEROCO : End If 
  5187.   Until TASTOPREMUTO$=" "
  5188.   PARATIPOCO(CATEGORIADEGLIOGGETTI)=CO
  5189.   Bset 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5190.  Else 
  5191.   Bclr 10,TIPOCO(CATEGORIADEGLIOGGETTI)
  5192.   Cls 
  5193.   Print "Parametro della categoria degli oggetti";CATEGORIADEGLIOGGETTI;">";Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  5194.   Locate 0,ULTIMALINEA : Input "Nuovo parametro della categoria degli oggetti>";PARACATEGORIADEGLIOGGETTI$;
  5195.   If PARACATEGORIADEGLIOGGETTI$<>""
  5196.    PARATIPOCO(CATEGORIADEGLIOGGETTI)=Val(PARACATEGORIADEGLIOGGETTI$)
  5197.   End If 
  5198.  End If 
  5199.  Curs Off 
  5200. End Proc
  5201. Procedure M0DDESCRIZIONE[DESCRIZIONE$]
  5202.  INIZIODESCRIZIONE=1
  5203.  FINEDESCRIZIONE=Min(Len(DESCRIZIONE$),32*80-1)
  5204.  Curs Off 
  5205.  Repeat 
  5206.   Cls 
  5207.   For DESCRIZIONE=INIZIODESCRIZIONE To FINEDESCRIZIONE
  5208.    Print Mid$(DESCRIZIONE$,DESCRIZIONE,1);
  5209.    Exit If FINEDESCRIZIONE-INIZIODESCRIZIONE=32*80-2
  5210.    Exit If DESCRIZIONE=Len(DESCRIZIONE$)
  5211.   Next DESCRIZIONE
  5212.   Wait Vbl 
  5213.   POSIZIONEY=DESCRIZIONE/80
  5214.   Curs On 
  5215.   Repeat 
  5216.    If RICORDA=True
  5217.     DISTANZAY=Y Curs-RICORDAY
  5218.     Add POSIZIONEY,-DISTANZAY
  5219.     Locate RICORDAX,RICORDAY : RICORDA=False
  5220.    End If 
  5221.    BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5222.    BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5223.    Repeat 
  5224.     TASTO$=Inkey$
  5225.     CODICESCANSIONE=Scancode
  5226.    Until TASTO$<>""
  5227.    If Asc(TASTO$)=0
  5228.     If CODICESCANSIONE=70 and Len(BLOCCOSUCCESSIVO$)>0
  5229.      BLOCCOSUCCESSIVO$=Right$(BLOCCOSUCCESSIVO$,Len(BLOCCOSUCCESSIVO$)-1)
  5230.      DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5231.      RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5232.      INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAY*80,1)
  5233.      FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5234.      Exit 
  5235.     End If 
  5236.    Else 
  5237.     If TASTO$=Chr$(8)
  5238.      BLOCCOPRECEDENTE$=Left$(BLOCCOPRECEDENTE$,Len(BLOCCOPRECEDENTE$)-1)
  5239.      DESCRIZIONE$=BLOCCOPRECEDENTE$+BLOCCOSUCCESSIVO$
  5240.      RICORDAX=X Curs-1 : RICORDAY=Y Curs
  5241.      If RICORDAX=-1
  5242.       RICORDAX=79 : Dec RICORDAY
  5243.       If RICORDAY=-1
  5244.        If POSIZIONEY>0
  5245.         Vscroll 1 : RICORDAX=0 : RICORDAY=0 : Dec POSIZIONEY
  5246.         INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5247.        Else 
  5248.         RICORDAX=0 : RICORDAY=0
  5249.        End If 
  5250.       End If 
  5251.      End If 
  5252.      XG=X Graphic(RICORDAX) : YG=Y Graphic(RICORDAY)
  5253.      Ink 0 : Bar XG,YG To XG+7,YG+7 : Ink 1
  5254.      INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5255.      FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5256.      RICORDA=True
  5257.      Exit 
  5258.     Else If TASTO$=Cup$
  5259.      If Y Curs=0
  5260.       If POSIZIONEY>31
  5261.        Vscroll 1 : Dec POSIZIONEY
  5262.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5263.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5264.        RICORDAX=0 : RICORDAY=0 : RICORDA=True
  5265.        INIZIODESCRIZIONE=POSIZIONEY*80-79 : FINEDESCRIZIONE=POSIZIONEY*80
  5266.        Exit 
  5267.       End If 
  5268.      Else 
  5269.       Cmove ,-1 : Dec POSIZIONEY
  5270.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5271.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5272.      End If 
  5273.     Else If TASTO$=Cdown$
  5274.      If Y Curs=32
  5275.       If Len(BLOCCOSUCCESSIVO$)>79
  5276.        Vscroll 3 : Inc POSIZIONEY
  5277.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5278.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5279.       End If 
  5280.      Else 
  5281.       If Len(BLOCCOSUCCESSIVO$)>79
  5282.        Cmove ,1 : Inc POSIZIONEY
  5283.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5284.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5285.       End If 
  5286.      End If 
  5287.     Else If TASTO$=Cleft$
  5288.      If X Curs=0
  5289.       If Y Curs=0
  5290.        If POSIZIONEY>0
  5291.         Vscroll 1 : Dec POSIZIONEY
  5292.         BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5293.         BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5294.        End If 
  5295.       Else 
  5296.        Locate 79, : Cmove ,-1 : Dec POSIZIONEY
  5297.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5298.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5299.       End If 
  5300.      Else 
  5301.       Cmove -1,
  5302.       BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5303.       BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5304.      End If 
  5305.     Else If TASTO$=Cright$
  5306.      If X Curs=79
  5307.       If Y Curs=32
  5308.        If Len(BLOCCOSUCCESSIVO$)>0
  5309.         Vscroll 3 : Inc POSIZIONEY
  5310.         BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5311.         BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5312.        End If 
  5313.       Else 
  5314.        Locate 0, : Cmove ,1 : Inc POSIZIONEY
  5315.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5316.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5317.       End If 
  5318.      Else 
  5319.       If Len(BLOCCOSUCCESSIVO$)>0
  5320.        Cmove 1,
  5321.        BLOCCOPRECEDENTE$=Left$(DESCRIZIONE$,X Curs+POSIZIONEY*80)
  5322.        BLOCCOSUCCESSIVO$=Right$(DESCRIZIONE$,Len(DESCRIZIONE$)-X Curs-POSIZIONEY*80)
  5323.       End If 
  5324.      End If 
  5325.     Else 
  5326.      CARATTERIVALIDI$="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz������!',;.:1234567890 "
  5327.      If Instr(CARATTERIVALIDI$,TASTO$)>0
  5328.       DESCRIZIONE$=BLOCCOPRECEDENTE$+TASTO$+BLOCCOSUCCESSIVO$
  5329.       If Len(BLOCCOSUCCESSIVO$)>0
  5330.        RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5331.        INIZIODESCRIZIONE=Max(POSIZIONEY*80-RICORDAX-RICORDAY*80,1)
  5332.        FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5333.        Exit 
  5334.       Else 
  5335.        ULTIMACOLONNA=X Curs
  5336.        Print TASTO$;
  5337.        If ULTIMACOLONNA=79
  5338.         Inc POSIZIONEY
  5339.         If Y Curs=31
  5340.          Vscroll 3
  5341.          RICORDAX=X Curs : RICORDAY=Y Curs : RICORDA=True
  5342.          INIZIODESCRIZIONE=Max(POSIZIONEY*80-79,1)
  5343.          FINEDESCRIZIONE=Len(DESCRIZIONE$)
  5344.          Exit 
  5345.         End If 
  5346.        End If 
  5347.       End If 
  5348.      End If 
  5349.     End If 
  5350.    End If 
  5351.   Until TASTO$=Chr$(27)
  5352.  Until TASTO$=Chr$(27)
  5353.  Curs Off 
  5354. End Proc[DESCRIZIONE$]
  5355. Procedure M0DEDIFICIO
  5356.  Cls 
  5357.  Print "Nome dell'edificio";EDIFICIO;">";NOMEE$(EDIFICIO)
  5358.  Locate 0,ULTIMALINEA
  5359.  Input "Nuovo nome dell'edificio"+Str$(EDIFICIO)+">";NOMEEDIFICIO$;
  5360.  If NOMEEDIFICIO$<>"" Then NOMEE$(EDIFICIO)=NOMEEDIFICIO$
  5361.  Cls 
  5362.  Print "Posizione dell'edificio";EDIFICIO;">luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  5363.  Locate 0,ULTIMALINEA
  5364.  Input "Nuova posizione dell'edificio"+Str$(EDIFICIO)+" (0-"+Str$(NUMEROL)-" "+")>";NUOVAPOSIZIONEEDIFICIO$;
  5365.  If NUOVAPOSIZIONEEDIFICIO$<>""
  5366.   NUOVAPOSIZIONEEDIFICIO=Val(NUOVAPOSIZIONEEDIFICIO$)
  5367.   Proc LIMITI[NUOVAPOSIZIONEEDIFICIO,0,NUMEROL] : NUOVAPOSIZIONEEDIFICIO=Param
  5368.   POSIZIONEE(EDIFICIO)=NUOVAPOSIZIONEEDIFICIO
  5369.  End If 
  5370.  Cls 
  5371.  Print "Numero delle stanze dell'edificio";EDIFICIO;">";NUMEROS(EDIFICIO)+1
  5372.  Locate 0,ULTIMALINEA
  5373.  Input "Nuovo numero delle stanze dell'edificio"+Str$(EDIFICIO)+" (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  5374.  If NUMEROSTANZE$<>""
  5375.   NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  5376.   Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROSTANZE=Param
  5377.   NUMEROS(EDIFICIO)=NUMEROSTANZE
  5378.  End If 
  5379.  Curs Off 
  5380. End Proc
  5381. Procedure M0DIFICA
  5382.  M0DIFICA=True
  5383.  Fade 5,$660
  5384.  Cls 
  5385.  Proc TIC["premi C per modificare una categoria degli oggetti",ULTIMALINEA-13]
  5386.  Proc TIC["premi D per modificare una descrizione",ULTIMALINEA-12]
  5387.  Proc TIC["premi E per modificare un'edificio",ULTIMALINEA-11]
  5388.  Proc TIC["premi F per modificare lo scopo del gioco",ULTIMALINEA-10]
  5389.  Proc TIC["premi L per modificare un luogo",ULTIMALINEA-9]
  5390.  Proc TIC["premi M per creare una mappa dei luoghi/delle stanze",ULTIMALINEA-8]
  5391.  Proc TIC["premi N per modificare un numero",ULTIMALINEA-7]
  5392.  Proc TIC["premi O per modificare un oggetto",ULTIMALINEA-6]
  5393.  Proc TIC["premi P per modificare un personaggio",ULTIMALINEA-5]
  5394.  Proc TIC["premi R per modificare una regione",ULTIMALINEA-4]
  5395.  Proc TIC["premi S per modificare una stanza",ULTIMALINEA-3]
  5396.  Proc TIC["premi T per modificare il tipo dei luoghi",ULTIMALINEA-2]
  5397.  Proc TIC["premi X per attivare/disattivare la musica",ULTIMALINEA-1]
  5398.  Proc TIC["premi Z per attivare/disattivare i nemici",ULTIMALINEA]
  5399.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5400.  If SCELTA$="c" Then Proc M0DIFICACATEGORIADEGLIOGGETTI
  5401.  If SCELTA$="d" Then Proc M0DIFICADESCRIZIONE
  5402.  If SCELTA$="e" Then Proc M0DIFICAEDIFICIO
  5403.  If SCELTA$="f" Then Proc M0DIFICASCOPODELGIOCO
  5404.  If SCELTA$="l" Then Proc M0DIFICALUOGO
  5405.  If SCELTA$="m" Then Proc CREAMAPPA
  5406.  If SCELTA$="n" Then Proc M0DIFICANUMERO
  5407.  If SCELTA$="o" Then Proc M0DIFICAOGGETTO
  5408.  If SCELTA$="p" Then Proc M0DIFICAPERSONAGGIO
  5409.  If SCELTA$="r" Then Proc M0DIFICAREGIONE
  5410.  If SCELTA$="s" Then Proc M0DIFICASTANZA
  5411.  If SCELTA$="t" Then Proc M0DIFICATIPODEILUOGHI
  5412.  If SCELTA$="x"
  5413.   _MUSICA= Not _MUSICA
  5414.   If _MUSICA=True
  5415.    Proc SUONAUNMODULO[FILEREQUESTERMUSICA]
  5416.    If FILEREQUESTERMUSICA=True and Param$=""
  5417.     _MUSICA=False
  5418.    End If 
  5419.   Else 
  5420.    Track Loop Of : Track Stop 
  5421.   End If 
  5422.  End If 
  5423.  If SCELTA$="z" Then ANEMICI= Not ANEMICI
  5424.  Fade 5,$60
  5425.  M0DIFICA=False
  5426. End Proc
  5427. Procedure M0DIFICACATEGORIADEGLIOGGETTI
  5428.  CATEGORIADEGLIOGGETTI=0
  5429.  Repeat 
  5430.   Proc MOSTRACATEGORIADEGLIOGGETTI
  5431.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta categoria M modifica Esc esci",ULTIMALINEA]
  5432.   Repeat 
  5433.    TASTOPREMUTO$=Inkey$
  5434.   Until TASTOPREMUTO$<>""
  5435.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5436.   If TASTOPREMUTO$="m" Then Proc M0DCATEGORIADEGLIOGGETTI
  5437.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  5438.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  5439.  Until TASTOPREMUTO$=Chr$(27)
  5440.  CATEGORIADEGLIOGGETTI=0
  5441. End Proc
  5442. Procedure M0DIFICADESCRIZIONE
  5443.  Shared SCELTA$
  5444.  Cls 
  5445.  Proc TIC["premi A per modificare il prologo",ULTIMALINEA-7]
  5446.  Proc TIC["premi C per modificare la descrizione della categoria degli oggetti selezionata",ULTIMALINEA-7]
  5447.  Proc TIC["premi E per modificare la descrizione dell'edificio selezionato",ULTIMALINEA-6]
  5448.  Proc TIC["premi L per modificare la descrizione del luogo selezionato",ULTIMALINEA-5]
  5449.  Proc TIC["premi O per modificare la descrizione dell'oggetto leggibile selezionato",ULTIMALINEA-4]
  5450.  Proc TIC["premi P per modificare la descrizione del personaggio",ULTIMALINEA-3]
  5451.  Proc TIC["premi S per modificare la descrizione della stanza",ULTIMALINEA-2]
  5452.  Proc TIC["premi Z per modificare l'epilogo",ULTIMALINEA-1]
  5453.  Proc TIC["quando sei nell'editor premi Esc per finire",ULTIMALINEA]
  5454.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5455.  If SCELTA$="a" Then DESCRIZIONE$=PROLOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5456.  If SCELTA$="c" Then DESCRIZIONE$=DESCRIZIONECO$(CATEGORIADEGLIOGGETTI) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5457.  If SCELTA$="e" Then DESCRIZIONE$=DESCRIZIONEE$(EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5458.  If SCELTA$="l" Then DESCRIZIONE$=DESCRIZIONEL$(LUOGO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5459.  If SCELTA$="o" and TIPOCO(CATEGORIAO(OGGETTO))=%1000
  5460.   DESCRIZIONE$=TESTOO$(PARATIPOCO(CATEGORIAO(OGGETTO))) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5461.  End If 
  5462.  If SCELTA$="p" Then DESCRIZIONE$=DESCRIZIONEP$(PERSONAGGIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5463.  If SCELTA$="s" Then DESCRIZIONE$=DESCRIZIONES$(STANZA,EDIFICIO) : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5464.  If SCELTA$="z" Then DESCRIZIONE$=EPILOGO$ : Proc M0DDESCRIZIONE[DESCRIZIONE$]
  5465.  
  5466.  If SCELTA$="a" Then PROLOGO$=Param$
  5467.  If SCELTA$="c" Then DESCRIZIONECO$(CATEGORIADEGLIOGGETTI)=Param$
  5468.  If SCELTA$="e" Then DESCRIZIONEE$(EDIFICIO)=Param$
  5469.  If SCELTA$="l" Then DESCRIZIONEL$(LUOGO)=Param$
  5470.  If SCELTA$="o" and TIPOCO(CATEGORIAO(OGGETTO))=%1000
  5471.   TESTOO$(PARATIPOCO(CATEGORIAO(OGGETTO)))=Param$
  5472.  End If 
  5473.  If SCELTA$="p" Then DESCRIZIONEP$(PERSONAGGIO)=Param$
  5474.  If SCELTA$="s" Then DESCRIZIONES$(STANZA,EDIFICIO)=Param$
  5475.  If SCELTA$="z" Then EPILOGO$=Param$
  5476. End Proc
  5477. Procedure M0DIFICAEDIFICIO
  5478.  If NUMEROE=-1 Then Pop Proc
  5479.  EDIFICIO=0
  5480.  Repeat 
  5481.   Proc MOSTRAEDIFICIO
  5482.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta edificio M modifica Esc esci",ULTIMALINEA]
  5483.   Repeat 
  5484.    TASTOPREMUTO$=Inkey$
  5485.   Until TASTOPREMUTO$<>""
  5486.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5487.   If TASTOPREMUTO$="m" Then Proc M0DEDIFICIO
  5488.   If TASTOPREMUTO$=Cup$ Then Add EDIFICIO,-1,0 To NUMEROE
  5489.   If TASTOPREMUTO$=Cdown$ Then Add EDIFICIO,1,0 To NUMEROE
  5490.  Until TASTOPREMUTO$=Chr$(27)
  5491.  LUOGO=0
  5492. End Proc
  5493. Procedure M0DIFICALUOGO
  5494.  LUOGO=0
  5495.  Repeat 
  5496.   Proc MOSTRALUOGO
  5497.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta luogo M modifica Esc esci",ULTIMALINEA]
  5498.   Repeat 
  5499.    TASTOPREMUTO$=Inkey$
  5500.   Until TASTOPREMUTO$<>""
  5501.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5502.   If TASTOPREMUTO$="m" Then Proc M0DLUOGO
  5503.   If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  5504.   If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  5505.  Until TASTOPREMUTO$=Chr$(27)
  5506.  LUOGO=0
  5507. End Proc
  5508. Procedure M0DIFICAOGGETTO
  5509.  OGGETTO=0
  5510.  Repeat 
  5511.   Proc MOSTRAOGGETTO
  5512.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta oggetto M modifica Esc esci",ULTIMALINEA]
  5513.   Repeat 
  5514.    TASTOPREMUTO$=Inkey$
  5515.   Until TASTOPREMUTO$<>""
  5516.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5517.   If TASTOPREMUTO$="m" Then Proc M0DOGGETTO
  5518.   If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  5519.   If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  5520.  Until TASTOPREMUTO$=Chr$(27)
  5521.  OGGETTO=0
  5522. End Proc
  5523. Procedure M0DIFICANUMERO
  5524.  Cls 
  5525.  Proc TIC["premi C per modificare il numero delle categorie degli oggetti",ULTIMALINEA-6]
  5526.  Proc TIC["premi E per modificare il numero degli edifici",ULTIMALINEA-5]
  5527.  Proc TIC["premi L per modificare il numero dei luoghi",ULTIMALINEA-4]
  5528.  Proc TIC["premi O per modificare il numero degli oggetti",ULTIMALINEA-3]
  5529.  Proc TIC["premi P per modificare il numero dei personaggi",ULTIMALINEA-2]
  5530.  Proc TIC["premi R per modificare il numero delle regioni",ULTIMALINEA-1]
  5531.  Proc TIC["premi S per modificare il numero delle stanze",ULTIMALINEA]
  5532.  SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  5533.  If SCELTA$="c" Then Proc M0DNUMCO
  5534.  If SCELTA$="e" Then Proc M0DNUME
  5535.  If SCELTA$="l" Then Proc M0DNUML
  5536.  If SCELTA$="o" Then Proc M0DNUMO
  5537.  If SCELTA$="p" Then Proc M0DNUMP
  5538.  If SCELTA$="r" Then Proc M0DNUMR
  5539.  If SCELTA$="s" Then Proc M0DNUMS
  5540. End Proc
  5541. Procedure M0DIFICAPERSONAGGIO
  5542.  PERSONAGGIO=0
  5543.  Repeat 
  5544.   Proc MOSTRAPERSONAGGIO
  5545.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta personaggio M modifica Esc esci",ULTIMALINEA]
  5546.   Repeat 
  5547.    TASTOPREMUTO$=Inkey$
  5548.   Until TASTOPREMUTO$<>""
  5549.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5550.   If TASTOPREMUTO$="m" Then Proc M0DPERSONAGGIO
  5551.   If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  5552.   If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  5553.  Until TASTOPREMUTO$=Chr$(27)
  5554.  PERSONAGGIO=0
  5555. End Proc
  5556. Procedure M0DIFICAREGIONE
  5557.  REGIONE=0
  5558.  Repeat 
  5559.   Proc MOSTRAREGIONE
  5560.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta regione M modifica Esc esci",ULTIMALINEA]
  5561.   Repeat 
  5562.    TASTOPREMUTO$=Inkey$
  5563.   Until TASTOPREMUTO$<>""
  5564.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5565.   If TASTOPREMUTO$="m" Then Proc M0DREGIONE
  5566.   If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  5567.   If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  5568.  Until TASTOPREMUTO$=Chr$(27)
  5569.  REGIONE=0
  5570. End Proc
  5571. Procedure M0DIFICASCOPODELGIOCO
  5572.  VECCHIOSCOPODELGIOCO=AZIONEP(7,0)
  5573.  SCOPODELGIOCO=VECCHIOSCOPODELGIOCO
  5574.  SCOPOMODIFICATO=-1
  5575.  Repeat 
  5576.   Proc SCOPODELGIOCO[True]
  5577.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta scopo del gioco M modifica Esc esci",ULTIMALINEA]
  5578.   Repeat 
  5579.    TASTOPREMUTO$=Inkey$
  5580.   Until TASTOPREMUTO$<>""
  5581.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5582.   If TASTOPREMUTO$="m" Then Proc SCOPODELGIOCO[SCOPODELGIOCO] : SCOPOMODIFICATO=SCOPODELGIOCO
  5583.   If TASTOPREMUTO$=Cup$ Then Add SCOPODELGIOCO,-1,0 To 18
  5584.   If TASTOPREMUTO$=Cdown$ Then Add SCOPODELGIOCO,1,0 To 18
  5585.   AZIONEP(7,0)=SCOPODELGIOCO
  5586.  Until TASTOPREMUTO$=Chr$(27)
  5587.  If SCOPOMODIFICATO=-1
  5588.   AZIONEP(7,0)=VECCHIOSCOPODELGIOCO
  5589.  Else 
  5590.   AZIONEP(7,0)=SCOPOMODIFICATO
  5591.  End If 
  5592.  FINEA(7,0)=False
  5593. End Proc
  5594. Procedure M0DIFICASTANZA
  5595.  If NUMEROE=-1 Then Pop Proc
  5596.  STANZA=0
  5597.  Repeat 
  5598.   Proc MOSTRASTANZA
  5599.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta stanza M modifica Esc esci",ULTIMALINEA]
  5600.   Repeat 
  5601.    TASTOPREMUTO$=Inkey$
  5602.   Until TASTOPREMUTO$<>""
  5603.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  5604.   If TASTOPREMUTO$="m" Then Proc M0DSTANZA
  5605.   If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  5606.   If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  5607.  Until TASTOPREMUTO$=Chr$(27)
  5608.  STANZA=0
  5609. End Proc
  5610. Procedure M0DIFICATIPODEILUOGHI
  5611.  Cls 
  5612.  Locate 0,ULTIMALINEA : Input "Luogo di partenza (0-"+Str$(NUMEROL)-" "+") ?>";LUOGODIPARTENZA$;
  5613.  If LUOGODIPARTENZA$<>""
  5614.   LUOGODIPARTENZA=Val(LUOGODIPARTENZA$)
  5615.   Proc LIMITI[LUOGODIPARTENZA,0,NUMEROL] : LUOGODIPARTENZA=Param
  5616.  Else 
  5617.   LUOGODIPARTENZA=0
  5618.  End If 
  5619.  Locate 0,ULTIMALINEA : Input "Luogo di arrivo ("+Str$(LUOGODIPARTENZA+1)-" "+"-"+Str$(NUMEROL)-" "+") ?>";LUOGODIARRIVO$;
  5620.  If LUOGODIARRIVO$<>""
  5621.   LUOGODIPARRIVO=Val(LUOGODIARRIVO$)
  5622.   Proc LIMITI[LUOGODIARRIVO,LUOGODIPARTENZA+1,NUMEROL] : LUOGODIARRIVO=Param
  5623.  Else 
  5624.   LUOGODIARRIVO=NUMEROL
  5625.  End If 
  5626.  Curs Off 
  5627.  Repeat 
  5628.   Cls 
  5629.   Print "Nuovo tipo di luogo dei luoghi";LUOGODIPARTENZA;"-";Str$(LUOGODIARRIVO)-" "
  5630.   Print At(0,ULTIMALINEA-1);TIPOL$(TIPOLUOGO)
  5631.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo dei luoghi Spazio conferma Esc esci",ULTIMALINEA]
  5632.   Repeat 
  5633.    TASTOPREMUTO$=Inkey$
  5634.   Until TASTOPREMUTO$<>""
  5635.   If TASTOPREMUTO$=Chr$(27) Then Pop Proc
  5636.   If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  5637.   If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  5638.  Until TASTOPREMUTO$=" "
  5639.  For A=LUOGODIPARTENZA To LUOGODIARRIVO
  5640.   TIPOL(A)=TIPOLUOGO
  5641.  Next A
  5642.  If PARATIPOL(TIPOLUOGO)=0
  5643.   For A=0 To NUMEROP
  5644.    TEMP0DIATTRAVERSAMENTOP(A)=0
  5645.   Next A
  5646.  End If 
  5647. End Proc
  5648. Procedure M0DLUOGO
  5649.  Cls 
  5650.  Print "Nome del luogo";LUOGO;">";NOMEL$(LUOGO)
  5651.  Locate 0,ULTIMALINEA
  5652.  Input "Nuovo nome del luogo"+Str$(LUOGO)+">";NOMELUOGO$;
  5653.  If NOMELUOGO$<>"" Then NOMEL$(LUOGO)=NOMELUOGO$
  5654.  DREZIONE=DREZIONEL(0,LUOGO)
  5655.  Cls 
  5656.  Print "Direzione Nord del luogo";LUOGO;">";
  5657.  E=DREZIONE/$10000
  5658.  If E>0
  5659.   S=DREZIONE mod $10000
  5660.   Print "edificio";E;" stanza";S
  5661.  Else 
  5662.   If DREZIONE<$FFFF
  5663.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5664.   Else 
  5665.    Print " nessuno"
  5666.   End If 
  5667.  End If 
  5668.  Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5669.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5670.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5671.  If NUMEROLUOGO$<>""
  5672.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5673.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5674.    If NUMEROEDIFICIO$<>""
  5675.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5676.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5677.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5678.     If NUMEROSTANZA$<>""
  5679.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5680.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5681.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5682.     End If 
  5683.    End If 
  5684.   Else 
  5685.    If NUMEROLUOGO$="n"
  5686.     DREZIONE=$FFFF
  5687.    Else 
  5688.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5689.    End If 
  5690.   End If 
  5691.   DREZIONEL(0,LUOGO)=DREZIONE
  5692.  End If 
  5693.  DREZIONE=DREZIONEL(1,LUOGO)
  5694.  Cls 
  5695.  Print "Direzione NordEst del luogo";LUOGO;">";
  5696.  E=DREZIONE/$10000
  5697.  If E>0
  5698.   S=DREZIONE mod $10000
  5699.   Print "edificio";E;" stanza";S
  5700.  Else 
  5701.   If DREZIONE<$FFFF
  5702.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5703.   Else 
  5704.    Print " nessuno"
  5705.   End If 
  5706.  End If 
  5707.  Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5708.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5709.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5710.  If NUMEROLUOGO$<>""
  5711.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5712.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5713.    If NUMEROEDIFICIO$<>""
  5714.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5715.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5716.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5717.     If NUMEROSTANZA$<>""
  5718.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5719.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5720.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5721.     End If 
  5722.    End If 
  5723.   Else 
  5724.    If NUMEROLUOGO$="n"
  5725.     DREZIONE=$FFFF
  5726.    Else 
  5727.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5728.    End If 
  5729.   End If 
  5730.   DREZIONEL(1,LUOGO)=DREZIONE
  5731.  End If 
  5732.  DREZIONE=DREZIONEL(2,LUOGO)
  5733.  Cls 
  5734.  Print "Direzione Est del luogo";LUOGO;">";
  5735.  E=DREZIONE/$10000
  5736.  If E>0
  5737.   S=DREZIONE mod $10000
  5738.   Print "edificio";E;" stanza";S
  5739.  Else 
  5740.   If DREZIONE<$FFFF
  5741.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5742.   Else 
  5743.    Print " nessuno"
  5744.   End If 
  5745.  End If 
  5746.  Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5747.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5748.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5749.  If NUMEROLUOGO$<>""
  5750.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5751.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5752.    If NUMEROEDIFICIO$<>""
  5753.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5754.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5755.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5756.     If NUMEROSTANZA$<>""
  5757.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5758.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5759.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5760.     End If 
  5761.    End If 
  5762.   Else 
  5763.    If NUMEROLUOGO$="n"
  5764.     DREZIONE=$FFFF
  5765.    Else 
  5766.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5767.    End If 
  5768.   End If 
  5769.   DREZIONEL(2,LUOGO)=DREZIONE
  5770.  End If 
  5771.  DREZIONE=DREZIONEL(3,LUOGO)
  5772.  Cls 
  5773.  Print "Direzione SudEst del luogo";LUOGO;">";
  5774.  E=DREZIONE/$10000
  5775.  If E>0
  5776.   S=DREZIONE mod $10000
  5777.   Print "edificio";E;" stanza";S
  5778.  Else 
  5779.   If DREZIONE<$FFFF
  5780.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5781.   Else 
  5782.    Print " nessuno"
  5783.   End If 
  5784.  End If 
  5785.  Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5786.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5787.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5788.  If NUMEROLUOGO$<>""
  5789.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5790.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5791.    If NUMEROEDIFICIO$<>""
  5792.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5793.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5794.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5795.     If NUMEROSTANZA$<>""
  5796.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5797.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5798.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5799.     End If 
  5800.    End If 
  5801.   Else 
  5802.    If NUMEROLUOGO$="n"
  5803.     DREZIONE=$FFFF
  5804.    Else 
  5805.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5806.    End If 
  5807.   End If 
  5808.   DREZIONEL(3,LUOGO)=DREZIONE
  5809.  End If 
  5810.  DREZIONE=DREZIONEL(4,LUOGO)
  5811.  Cls 
  5812.  Print "Direzione Sud del luogo";LUOGO;">";
  5813.  E=DREZIONE/$10000
  5814.  If E>0
  5815.   S=DREZIONE mod $10000
  5816.   Print "edificio";E;" stanza";S
  5817.  Else 
  5818.   If DREZIONE<$FFFF
  5819.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5820.   Else 
  5821.    Print " nessuno"
  5822.   End If 
  5823.  End If 
  5824.  Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5825.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5826.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5827.  If NUMEROLUOGO$<>""
  5828.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5829.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5830.    If NUMEROEDIFICIO$<>""
  5831.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5832.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5833.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5834.     If NUMEROSTANZA$<>""
  5835.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5836.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5837.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5838.     End If 
  5839.    End If 
  5840.   Else 
  5841.    If NUMEROLUOGO$="n"
  5842.     DREZIONE=$FFFF
  5843.    Else 
  5844.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5845.    End If 
  5846.   End If 
  5847.   DREZIONEL(4,LUOGO)=DREZIONE
  5848.  End If 
  5849.  DREZIONE=DREZIONEL(5,LUOGO)
  5850.  Cls 
  5851.  Print "Direzione SudOvest del luogo";LUOGO;">";
  5852.  E=DREZIONE/$10000
  5853.  If E>0
  5854.   S=DREZIONE mod $10000
  5855.   Print "edificio";E;" stanza";S
  5856.  Else 
  5857.   If DREZIONE<$FFFF
  5858.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5859.   Else 
  5860.    Print " nessuno"
  5861.   End If 
  5862.  End If 
  5863.  Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5864.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5865.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5866.  If NUMEROLUOGO$<>""
  5867.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5868.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5869.    If NUMEROEDIFICIO$<>""
  5870.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5871.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5872.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5873.     If NUMEROSTANZA$<>""
  5874.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5875.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5876.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5877.     End If 
  5878.    End If 
  5879.   Else 
  5880.    If NUMEROLUOGO$="n"
  5881.     DREZIONE=$FFFF
  5882.    Else 
  5883.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5884.    End If 
  5885.   End If 
  5886.   DREZIONEL(5,LUOGO)=DREZIONE
  5887.  End If 
  5888.  DREZIONE=DREZIONEL(6,LUOGO)
  5889.  Cls 
  5890.  Print "Direzione Ovest del luogo";LUOGO;">";
  5891.  E=DREZIONE/$10000
  5892.  If E>0
  5893.   S=DREZIONE mod $10000
  5894.   Print "edificio";E;" stanza";S
  5895.  Else 
  5896.   If DREZIONE<$FFFF
  5897.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5898.   Else 
  5899.    Print " nessuno"
  5900.   End If 
  5901.  End If 
  5902.  Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5903.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5904.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5905.  If NUMEROLUOGO$<>""
  5906.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5907.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5908.    If NUMEROEDIFICIO$<>""
  5909.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5910.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5911.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5912.     If NUMEROSTANZA$<>""
  5913.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5914.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5915.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5916.     End If 
  5917.    End If 
  5918.   Else 
  5919.    If NUMEROLUOGO$="n"
  5920.     DREZIONE=$FFFF
  5921.    Else 
  5922.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5923.    End If 
  5924.   End If 
  5925.   DREZIONEL(6,LUOGO)=DREZIONE
  5926.  End If 
  5927.  DREZIONE=DREZIONEL(7,LUOGO)
  5928.  Cls 
  5929.  Print "Direzione NordOvest del luogo";LUOGO;">";
  5930.  E=DREZIONE/$10000
  5931.  If E>0
  5932.   S=DREZIONE mod $10000
  5933.   Print "edificio";E;" stanza";S
  5934.  Else 
  5935.   If DREZIONE<$FFFF
  5936.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5937.   Else 
  5938.    Print " nessuno"
  5939.   End If 
  5940.  End If 
  5941.  Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5942.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5943.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5944.  If NUMEROLUOGO$<>""
  5945.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5946.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5947.    If NUMEROEDIFICIO$<>""
  5948.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5949.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5950.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5951.     If NUMEROSTANZA$<>""
  5952.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5953.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5954.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5955.     End If 
  5956.    End If 
  5957.   Else 
  5958.    If NUMEROLUOGO$="n"
  5959.     DREZIONE=$FFFF
  5960.    Else 
  5961.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  5962.    End If 
  5963.   End If 
  5964.   DREZIONEL(7,LUOGO)=DREZIONE
  5965.  End If 
  5966.  DREZIONE=DREZIONEL(8,LUOGO)
  5967.  Cls 
  5968.  Print "Direzione Sopra del luogo";LUOGO;">";
  5969.  E=DREZIONE/$10000
  5970.  If E>0
  5971.   S=DREZIONE mod $10000
  5972.   Print "edificio";E;" stanza";S
  5973.  Else 
  5974.   If DREZIONE<$FFFF
  5975.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  5976.   Else 
  5977.    Print " nessuno"
  5978.   End If 
  5979.  End If 
  5980.  Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  5981.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  5982.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  5983.  If NUMEROLUOGO$<>""
  5984.   If NUMEROLUOGO$="e" and NUMEROE>-1
  5985.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  5986.    If NUMEROEDIFICIO$<>""
  5987.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  5988.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  5989.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  5990.     If NUMEROSTANZA$<>""
  5991.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  5992.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  5993.      If NUMEROSTANZA=0
  5994.       DREZIONE=NUMEROEDIFICIO*$10000
  5995.      Else 
  5996.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  5997.      End If 
  5998.     End If 
  5999.    End If 
  6000.   Else 
  6001.    If NUMEROLUOGO$="n"
  6002.     DREZIONE=$FFFF
  6003.    Else 
  6004.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6005.    End If 
  6006.   End If 
  6007.   DREZIONEL(8,LUOGO)=DREZIONE
  6008.  End If 
  6009.  DREZIONE=DREZIONEL(9,LUOGO)
  6010.  Cls 
  6011.  Print "Direzione Sotto del luogo";LUOGO;">luogo";
  6012.  E=DREZIONE/$10000
  6013.  If E>0
  6014.   S=DREZIONE mod $10000
  6015.   Print "edificio";E;" stanza";S
  6016.  Else 
  6017.   If DREZIONE<$FFFF
  6018.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6019.   Else 
  6020.    Print " nessuno"
  6021.   End If 
  6022.  End If 
  6023.  Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6024.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6025.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6026.  If NUMEROLUOGO$<>""
  6027.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6028.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6029.    If NUMEROEDIFICIO$<>""
  6030.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6031.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6032.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6033.     If NUMEROSTANZA$<>""
  6034.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6035.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6036.      If NUMEROSTANZA=0
  6037.       DREZIONE=NUMEROEDIFICIO*$10000
  6038.      Else 
  6039.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6040.      End If 
  6041.     End If 
  6042.    End If 
  6043.   Else 
  6044.    If NUMEROLUOGO$="n"
  6045.     DREZIONE=$FFFF
  6046.    Else 
  6047.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6048.    End If 
  6049.   End If 
  6050.   DREZIONEL(9,LUOGO)=DREZIONE
  6051.  End If 
  6052.  Cls 
  6053.  Print "Soldi nel luogo";LUOGO;">";Str$(SOLDIL(LUOGO))-" ";" ";
  6054.  If SOLDIL(LUOGO)=1 Then Print "soldo" Else Print "soldi"
  6055.  Locate 0,ULTIMALINEA
  6056.  Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLUOGO$;
  6057.  If SOLDINELLUOGO$<>""
  6058.   SOLDINELLUOGO=Val(SOLDINELLUOGO$)
  6059.   Proc LIMITI[SOLDINELLUOGO,0,65535] : SOLDIL(LUOGO)=Param
  6060.  End If 
  6061.  Curs Off 
  6062.  TIPOLUOGO=TIPOL(LUOGO)
  6063.  Repeat 
  6064.   Cls 
  6065.   Print "Tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOL(LUOGO))
  6066.   Print At(0,ULTIMALINEA-1);"Nuovo tipo di luogo del luogo";LUOGO;">";TIPOL$(TIPOLUOGO)
  6067.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo tipo di luogo Spazio conferma",ULTIMALINEA]
  6068.   Repeat 
  6069.    TASTOPREMUTO$=Inkey$
  6070.   Until TASTOPREMUTO$<>""
  6071.   If TASTOPREMUTO$=Cup$ Then Add TIPOLUOGO,-1,0 To 11
  6072.   If TASTOPREMUTO$=Cdown$ Then Add TIPOLUOGO,1,0 To 11
  6073.  Until TASTOPREMUTO$=" "
  6074.  TIPOL(LUOGO)=TIPOLUOGO
  6075. End Proc
  6076. Procedure M0DNUMCO
  6077.  Cls 
  6078.  Print "Numero delle categorie degli oggetti>";Str$(NUMEROCO+1)-" "
  6079.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle categorie degli oggetti (1-"+Str$(NUMMASCO+1)-" "+")>";NUMEROCATEGORIEDEGLIOGGETTI$;
  6080.  If NUMEROCATEGORIEDEGLIOGGETTI$<>""
  6081.   NUMEROCATEGORIEDEGLIOGGETTI=Val(NUMEROCATEGORIEDEGLIOGGETTI$)
  6082.   Dec NUMEROCATEGORIEDEGLIOGGETTI
  6083.   Proc LIMITI[NUMEROCATEGORIEDEGLIOGGETTI,0,NUMMASCO] : NUMEROCO=Param
  6084.  End If 
  6085.  Curs Off 
  6086. End Proc
  6087. Procedure M0DNUME
  6088.  Cls 
  6089.  Print "Numero degli edifici>";Str$(NUMEROE+1)-" "
  6090.  Locate 0,ULTIMALINEA : Input "Nuovo numero degli edifici (0-"+Str$(NUMMASE+1)-" "+")>";NUMEROEDIFICI$;
  6091.  If NUMEROEDIFICI$<>""
  6092.   NUMEROEDIFICI=Val(NUMEROEDIFICI$) : Dec NUMEROEDIFICI
  6093.   Proc LIMITI[NUMEROEDIFICI,-1,NUMMASE] : NUMEROE=Param
  6094.   If NUMEROE=-1
  6095.    EDIFICIO=NUMEROE
  6096.   End If 
  6097.  End If 
  6098.  Curs Off 
  6099. End Proc
  6100. Procedure M0DNUML
  6101.  Cls 
  6102.  Print "Numero dei luoghi>";Str$(NUMEROL+1)-" "
  6103.  Locate 0,ULTIMALINEA : Input "Nuovo numero dei luoghi (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROLUOGHI$;
  6104.  If NUMEROLUOGHI$<>""
  6105.   NUMEROLUOGHI=Val(NUMEROLUOGHI$) : Dec NUMEROLUOGHI
  6106.   Proc LIMITI[NUMEROLUOGHI,0,NUMMASL] : NUMEROL=Param
  6107.  End If 
  6108.  Curs Off 
  6109. End Proc
  6110. Procedure M0DNUMO
  6111.  Cls 
  6112.  Print "Numero degli oggetti>";Str$(NUMEROO+1)-" "
  6113.  Locate 0,ULTIMALINEA : Input "Nuovo numero degli oggetti (1-"+Str$(NUMMASO+1)-" "+")>";NUMEROOGGETTI$;
  6114.  If NUMEROOGGETTI$<>""
  6115.   NUMEROOGGETTI=Val(NUMEROOGGETTI$) : Dec NUMEROOGGETTI
  6116.   Proc LIMITI[NUMEROOGGETTI,0,NUMMASO] : NUMEROO=Param
  6117.  End If 
  6118.  Curs Off 
  6119. End Proc
  6120. Procedure M0DNUMP
  6121.  Cls 
  6122.  Print "Numero dei personaggi>";Str$(NUMEROP+1)-" "
  6123.  Locate 0,ULTIMALINEA : Input "Nuovo numero dei personaggi (1-"+Str$(NUMMASP+1)-" "+")>";NUMEROPERSONAGGI$;
  6124.  If NUMEROPERSONAGGI$<>""
  6125.   NUMEROPERSONAGGI=Val(NUMEROPERSONAGGI$) : Dec NUMEROPERSONAGGI
  6126.   Proc LIMITI[NUMEROPERSONAGGI,0,NUMMASL] : NUMEROP=Param
  6127.  End If 
  6128.  Curs Off 
  6129. End Proc
  6130. Procedure M0DNUMR
  6131.  Cls 
  6132.  Print "Numero delle regioni>";Str$(NUMEROR+1)-" "
  6133.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle regioni (1-"+Str$(NUMMASL+1)-" "+")>";NUMEROREGIONI$;
  6134.  If NUMEROREGIONI$<>""
  6135.   NUMEROREGIONI=Val(NUMEROREGIONI$) : Dec NUMEROREGIONI
  6136.   Proc LIMITI[NUMEROREGIONI,0,NUMMASL] : NUMEROR=Param
  6137.  End If 
  6138.  Curs Off 
  6139. End Proc
  6140. Procedure M0DNUMS
  6141.  Cls 
  6142.  Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  6143.  Locate 0,ULTIMALINEA : Input "Nuovo numero delle stanze (1-"+Str$(NUMMASS+1)-" "+")>";NUMEROSTANZE$;
  6144.  If NUMEROSTANZE$<>""
  6145.   NUMEROSTANZE=Val(NUMEROSTANZE$) : Dec NUMEROSTANZE
  6146.   Proc LIMITI[NUMEROSTANZE,0,NUMMASS] : NUMEROS(EDIFICIO)=Param
  6147.  End If 
  6148.  Curs Off 
  6149. End Proc
  6150. Procedure M0DOGGETTO
  6151.  CO=CATEGORIAO(OGGETTO)
  6152.  Repeat 
  6153.   Cls 
  6154.   Print "Nome dell'oggetto";OGGETTO;">";
  6155.   If Btst(1,TIPOO(OGGETTO))=True
  6156.    Print NOMESRO$(CATEGORIAO(OGGETTO))
  6157.   Else 
  6158.    Print NOMESCO$(CATEGORIAO(OGGETTO))
  6159.   End If 
  6160.   Print At(0,ULTIMALINEA-1);"Nuovo nome dell'oggetto";OGGETTO;">";
  6161.   If Btst(1,TIPOO(OGGETTO))=True
  6162.    Print NOMESRO$(CO);
  6163.   Else 
  6164.    Print NOMESCO$(CO);
  6165.   End If 
  6166.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuovo nome Spazio conferma",ULTIMALINEA]
  6167.   Repeat 
  6168.    TASTOPREMUTO$=Inkey$
  6169.   Until TASTOPREMUTO$<>""
  6170.   If TASTOPREMUTO$=Cup$ Then Add CO,-1,0 To NUMEROCO
  6171.   If TASTOPREMUTO$=Cdown$ Then Add CO,1,0 To NUMEROCO
  6172.  Until TASTOPREMUTO$=" "
  6173.  CATEGORIAO(OGGETTO)=CO
  6174.  Cls 
  6175.  Print "Nome dell'oggetto";OGGETTO;">";
  6176.  If Btst(1,TIPOO(OGGETTO))=True
  6177.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  6178.  Else 
  6179.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  6180.  End If 
  6181.  Print "Posizione dell'oggetto";OGGETTO;">";
  6182.  If POSIZIONEO(OGGETTO)<0
  6183.   SOGGETTO= Not POSIZIONEO(OGGETTO)
  6184.   If Btst(0,TIPOO(OGGETTO))=True
  6185.    Print "posseduto dal personaggio";SOGGETTO;
  6186.    Print " nome>";NOMEP$(SOGGETTO)
  6187.    If POSIZIONEO(OGGETTO)=-1
  6188.     POSSEDUTODALPERSONAGGIO0=True
  6189.    End If 
  6190.   Else 
  6191.    Print "contenuto nell'oggetto";SOGGETTO;
  6192.    Print " nome>";NOMESCO$(CATEGORIAO(SOGGETTO))
  6193.   End If 
  6194.  Else 
  6195.   E=POSIZIONEO(OGGETTO)/$10000
  6196.   If E>0
  6197.    Print "Edificio";E;" nome>";NOMEE$(E-1)
  6198.    S=POSIZIONEO(OGGETTO) mod $10000
  6199.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6200.   Else 
  6201.    Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  6202.   End If 
  6203.  End If 
  6204.  Print At(0,ULTIMALINEA-1);"Luogo dell'oggetto (0-";
  6205.  Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6206.  Locate 0,ULTIMALINEA : Input "Nuovo luogo dell'oggetto>";NUMEROLUOGO$;
  6207.  If NUMEROLUOGO$<>""
  6208.   NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6209.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6210.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6211.    If NUMEROEDIFICIO$<>""
  6212.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6213.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6214.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6215.     If NUMEROSTANZA$<>""
  6216.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6217.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6218.      POSIZIONEO(OGGETTO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6219.     End If 
  6220.    End If 
  6221.   Else If NUMEROLUOGO$="o"
  6222.    Print At(0,ULTIMALINEA-1);"Oggetto che contiene l'oggetto";OGGETTO;
  6223.    Print " (0-";Str$(NUMEROO)-" ";")             ";
  6224.    Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6225.    If NUMEROOGGETTO$<>""
  6226.     NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6227.     Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6228.     If NUMEROOGGETTO=OGGETTO
  6229.      Curs Off 
  6230.      Print At(0,ULTIMALINEA);"L'oggetto non pu� contenere s� stesso";
  6231.      Proc _ASPETTA
  6232.     Else 
  6233.      If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6234.       POSIZIONEO(OGGETTO)= Not NUMEROOGGETTO : Bclr 0,TIPOO(OGGETTO)
  6235.      Else 
  6236.       Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6237.       Proc _ASPETTA
  6238.      End If 
  6239.     End If 
  6240.    End If 
  6241.   Else If NUMEROLUOGO$="p"
  6242.    Locate 0,ULTIMALINEA-1 : Cline : Print "Personaggio che possiede l'oggetto (0-";
  6243.    Print Str$(NUMEROP)-" ";")"
  6244.    Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6245.    If NUMEROPERSONAGGIO$<>""
  6246.     NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6247.     Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6248.     POSIZIONEO(OGGETTO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOO(OGGETTO)
  6249.     If Btst(1,TIPOO(OGGETTO))=True
  6250.      Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(OGGETTO))
  6251.     Else 
  6252.      Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(OGGETTO))
  6253.     End If 
  6254.     If NUMEROPERSONAGGIO=0
  6255.      If Btst(1,TIPOO(OGGETTO))=True
  6256.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6257.      Else 
  6258.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6259.      End If 
  6260.     End If 
  6261.     If Btst(1,TIPOCO(CATEGORIAO(OGGETTO)))=True
  6262.      For A=0 To NUMEROO
  6263.       If POSIZIONEO(A)=-1-OGGETTO and Btst(0,TIPOO(A))=False
  6264.        If Btst(1,TIPOO(A))=True
  6265.         Add PESONETTOP(NUMEROPERSONAGGIO),PESORESTOCO(CATEGORIAO(A))
  6266.        Else 
  6267.         Add PESONETTOP(NUMEROPERSONAGGIO),PESOCO(CATEGORIAO(A))
  6268.        End If 
  6269.       End If 
  6270.      Next A
  6271.      For A=0 To NUMEROP
  6272.       If POSIZIONEP(A)=-1-OGGETTO and Btst(0,TIPOP(A))=False
  6273.        Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(A)
  6274.        Add PESONETTOP(NUMEROPERSONAGGIO),PESONETTOP(A)
  6275.       End If 
  6276.      Next A
  6277.     End If 
  6278.    End If 
  6279.   Else 
  6280.    NUMEROLUOGO=Val(NUMEROLUOGO$)
  6281.    Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEO(OGGETTO)=Param
  6282.   End If 
  6283.   If POSSEDUTODALPERSONAGGIO0=True
  6284.    If Btst(1,TIPOO(OGGETTO))=True
  6285.     Dec RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6286.    Else 
  6287.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6288.    End If 
  6289.   End If 
  6290.  End If 
  6291.  Curs Off 
  6292.  If POSIZIONEO(OGGETTO)>0 or Btst(0,TIPOO(OGGETTO))=False or Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=False or Btst(2,TIPOO(OGGETTO))=False
  6293.   Cls 
  6294.   Print "Nome dell'oggetto";OGGETTO;">";
  6295.   If Btst(1,TIPOO(OGGETTO))=True
  6296.    Print NOMESRO$(CATEGORIAO(OGGETTO))
  6297.   Else 
  6298.    Print NOMESCO$(CATEGORIAO(OGGETTO))
  6299.   End If 
  6300.   Print At(0,ULTIMALINEA);"Vuoi che l'oggetto sia un resto di oggetto (s/n) ?>";
  6301.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6302.   If RISPOSTA$="s"
  6303.    If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6304.     If Btst(1,TIPOO(OGGETTO))=False
  6305.      Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6306.      Inc RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6307.     End If 
  6308.    End If 
  6309.    Bset 1,TIPOO(OGGETTO)
  6310.   Else 
  6311.    If NUMEROPERSONAGGIO=0 or POSSEDUTODALPERSONAGGIO0=True
  6312.     If Btst(1,TIPOO(OGGETTO))=True
  6313.      Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6314.      Dec RESTODELPERSONAGGIO0(CATEGORIAO(OGGETTO))
  6315.     End If 
  6316.    End If 
  6317.    Bclr 1,TIPOO(OGGETTO)
  6318.   End If 
  6319.  End If 
  6320.  If POSIZIONEO(OGGETTO)<0 and Btst(0,TIPOO(OGGETTO))=True and Btst(2,TIPOCO(CATEGORIAO(OGGETTO)))=True and Btst(1,TIPOO(OGGETTO))=False
  6321.   Cls 
  6322.   Print "Nome dell'oggetto";OGGETTO;">";NOMESCO$(CATEGORIAO(OGGETTO))
  6323.   Print At(0,ULTIMALINEA);"Vuoi che l'oggetto difensivo sia indossato (s/n) ?>";
  6324.   RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6325.   If RISPOSTA$="s"
  6326.    Bset 2,TIPOO(OGGETTO)
  6327.   Else 
  6328.    Bclr 2,TIPOO(OGGETTO)
  6329.   End If 
  6330.  End If 
  6331.  Locate 0,ULTIMALINEA : Cline 
  6332.  Print "Vuoi che l'oggetto sia nascosto (s/n) ?>";
  6333.  RISPOSTA$=Input$(1) : RISPOSTA$=Lower$(RISPOSTA$)
  6334.  If RISPOSTA$="s"
  6335.   Bset 3,TIPOO(OGGETTO)
  6336.  Else 
  6337.   Bclr 3,TIPOO(OGGETTO)
  6338.  End If 
  6339. End Proc
  6340. Procedure M0DPERSONAGGIO
  6341.  Cls 
  6342.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6343.  Locate 0,ULTIMALINEA : Input "Nuovo nome del personaggio"+Str$(PERSONAGGIO)+">";NOMEPERSONAGGIO$;
  6344.  If NOMEPERSONAGGIO$<>"" Then NOMEP$(PERSONAGGIO)=NOMEPERSONAGGIO$
  6345.  Cls 
  6346.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6347.  Print "Posizione del personaggio";PERSONAGGIO;">";
  6348.  If POSIZIONEP(PERSONAGGIO)<0
  6349.   SOGGETTO= Not POSIZIONEP(PERSONAGGIO)
  6350.   If Btst(0,TIPOP(PERSONAGGIO))=True
  6351.    Print "trasportato dal personaggio";SOGGETTO;
  6352.    Print " di nome ";NOMEP$(SOGGETTO)
  6353.   Else 
  6354.    Print "contenuto nell'oggetto";SOGGETTO;
  6355.    Print " di nome ";NOMESCO$(CATEGORIAO(SOGGETTO))
  6356.   End If 
  6357.  Else 
  6358.   E=POSIZIONEP(PERSONAGGIO)/$10000
  6359.   If E>0
  6360.    Print "Edificio";E;" nome>";NOMEE$(E-1)
  6361.    S=POSIZIONEP(PERSONAGGIO) mod $10000
  6362.    Print "Stanza";S;" nome>";NOMES$(S,E-1)
  6363.   Else 
  6364.    Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  6365.   End If 
  6366.  End If 
  6367.  If PERSONAGGIO=0
  6368.   Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";Str$(NUMEROL)-" ";" E=Edificio)";
  6369.   Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6370.   If NUMEROLUOGO$<>""
  6371.    If NUMEROLUOGO$="e" and NUMEROE>-1
  6372.     Locate 0,ULTIMALINEA : Input "Quale edificio (0-"+Str$(NUMEROE)-" "+") ?>";NUMEROEDIFICIO$;
  6373.     If NUMEROEDIFICIO$<>""
  6374.      NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6375.      Proc LIMITI[NUMEROEDIFICIO,0,NUMEROE] : NUMEROEDIFICIO=Param
  6376.      Locate 0,ULTIMALINEA : Input "Quale stanza (0-"+Str$(NUMEROS(NUMEROEDIFICIO))-" "+") ?>";NUMEROSTANZA$;
  6377.      If NUMEROSTANZA$<>""
  6378.       NUMEROSTANZA=Val(NUMEROSTANZA$)
  6379.       Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6380.       POSIZIONEP(PERSONAGGIO)=(NUMEROEDIFICIO+1)*$10000+NUMEROSTANZA
  6381.      End If 
  6382.     End If 
  6383.    Else 
  6384.     NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6385.     NUMEROLUOGO=Val(NUMEROLUOGO$)
  6386.     Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6387.     LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6388.     TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6389.     DREZIONEPRESAP(PERSONAGGIO)=-1
  6390.     DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6391.    End If 
  6392.   End If 
  6393.  Else 
  6394.   Print At(0,ULTIMALINEA-1);"Luogo del personaggio (0-";
  6395.   Print Str$(NUMEROL)-" ";" E=Edificio O=Oggetto P=Personaggio)";
  6396.   Locate 0,ULTIMALINEA : Input "Nuovo luogo del personaggio>";NUMEROLUOGO$;
  6397.   If NUMEROLUOGO$<>""
  6398.    NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6399.    If NUMEROLUOGO$="e" and NUMEROE>-1
  6400.     Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6401.     If NUMEROEDIFICIO$<>""
  6402.      NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6403.      Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6404.      Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6405.      If NUMEROSTANZA$<>""
  6406.       NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6407.       Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6408.       POSIZIONEP(PERSONAGGIO)=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6409.      End If 
  6410.     End If 
  6411.    Else If NUMEROLUOGO$="o"
  6412.     Print At(0,ULTIMALINEA-1);"Oggetto che contiene il personaggio (0-";
  6413.     Print Str$(NUMEROO)-" ";")             ";
  6414.     Locate 0,ULTIMALINEA : Input "Numero dell'oggetto>";NUMEROOGGETTO$;
  6415.     If NUMEROOGGETTO$<>""
  6416.      NUMEROOGGETTO=Val(NUMEROOGGETTO$)
  6417.      Proc LIMITI[NUMEROOGGETTO,0,NUMEROO] : NUMEROOGGETTO=Param
  6418.      If Btst(1,TIPOCO(CATEGORIAO(NUMEROOGGETTO)))=True
  6419.       POSIZIONEP(PERSONAGGIO)= Not NUMEROOGGETTO : Bclr 0,TIPOP(PERSONAGGIO)
  6420.      Else 
  6421.       Print At(0,ULTIMALINEA);"L'oggetto non ï¿½ un contenitore";
  6422.       Proc _ASPETTA
  6423.      End If 
  6424.     End If 
  6425.    Else If NUMEROLUOGO$="p"
  6426.     Print At(0,ULTIMALINEA-1);"Personaggio che trasporta il personaggio";PERSONAGGIO;
  6427.     Print " (0-";Str$(NUMEROP)-" ";")    ";
  6428.     Locate 0,ULTIMALINEA : Input "Numero del personaggio>";NUMEROPERSONAGGIO$;
  6429.     If NUMEROPERSONAGGIO$<>""
  6430.      NUMEROPERSONAGGIO=Val(NUMEROPERSONAGGIO$)
  6431.      Proc LIMITI[NUMEROPERSONAGGIO,0,NUMEROP] : NUMEROPERSONAGGIO=Param
  6432.      If NUMEROPERSONAGGIO=PERSONAGGIO
  6433.       Curs Off 
  6434.       Print At(0,ULTIMALINEA);"Il personaggio non pu� trasportare s� stesso";
  6435.       Proc _ASPETTA
  6436.      Else 
  6437.       POSIZIONEP(PERSONAGGIO)= Not NUMEROPERSONAGGIO : Bset 0,TIPOP(PERSONAGGIO)
  6438.       Add PESONETTOP(NUMEROPERSONAGGIO),PESOP(PERSONAGGIO)*1000
  6439.      End If 
  6440.     End If 
  6441.    Else 
  6442.     NUMEROLUOGO=Val(NUMEROLUOGO$)
  6443.     Proc LIMITI[NUMEROLUOGO,0,NUMEROL] : POSIZIONEP(PERSONAGGIO)=Param
  6444.     LUOGODIDESTINAZIONEP(PERSONAGGIO)=-1
  6445.     TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)=0
  6446.     DREZIONEPRESAP(PERSONAGGIO)=-1
  6447.     DREZIONEOPPOSTAAQUELLAPRESAP(PERSONAGGIO)=0
  6448.    End If 
  6449.   End If 
  6450.  End If 
  6451.  Curs Off 
  6452.  Cls 
  6453.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6454.  Print "Costituzione del personaggio";PERSONAGGIO;">";
  6455.  Print Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  6456.  If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6457.  Locate 0,ULTIMALINEA
  6458.  Input "Nuova costituzione del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";C0STITUZIONEPERSONAGGIO$;
  6459.  If C0STITUZIONEPERSONAGGIO$<>""
  6460.   C0STITUZIONEPERSONAGGIO=Val(C0STITUZIONEPERSONAGGIO$)
  6461.   LIMITI[C0STITUZIONEPERSONAGGIO,1,65536]
  6462.   C0STITUZIONEP(PERSONAGGIO)=Param
  6463.  End If 
  6464.  Cls 
  6465.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6466.  Print "Forza del personaggio";PERSONAGGIO;">";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  6467.  If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6468.  Locate 0,ULTIMALINEA
  6469.  Input "Nuova forza del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";F0RZAPERSONAGGIO$;
  6470.  If F0RZAPERSONAGGIO$<>""
  6471.   F0RZAPERSONAGGIO=Val(F0RZAPERSONAGGIO$)
  6472.   LIMITI[F0RZAPERSONAGGIO,1,65536] : F0RZAP(PERSONAGGIO)=Param
  6473.  End If 
  6474.  Cls 
  6475.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6476.  Print "Peso del personaggio";PERSONAGGIO;">";Str$(PESOP(PERSONAGGIO))-" ";" ";
  6477.  If PESOP(PERSONAGGIO)=1 Then Print "chilo" Else Print "chili"
  6478.  Locate 0,ULTIMALINEA
  6479.  Input "Nuovo peso del personaggio"+Str$(PERSONAGGIO)+" (1-65536)>";PESOPERSONAGGIO$;
  6480.  If PESOPERSONAGGIO$<>""
  6481.   PESOPERSONAGGIO=Val(PESOPERSONAGGIO$) : PESOPRECEDENTE=PESOP(PERSONAGGIO)
  6482.   LIMITI[PESOPERSONAGGIO,1,65536] : PESOP(PERSONAGGIO)=Param
  6483.   For A=0 To NUMEROP
  6484.    If POSIZIONEP(PERSONAGGIO)=-1-A and Btst(0,TIPOP(PERSONAGGIO))=True
  6485.     Add PESONETTOP(A),-PESOPRECEDENTE*1000
  6486.     Add PESONETTOP(A),PESOP(PERSONAGGIO)*1000
  6487.    End If 
  6488.   Next A
  6489.  End If 
  6490.  Cls 
  6491.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6492.  Print "Resistenza del personaggio";PERSONAGGIO;">";
  6493.  Print Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  6494.  If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  6495.  Locate 0,ULTIMALINEA
  6496.  Input "Nuova resistenza del personaggio"+Str$(PERSONAGGIO)+" (0-"+Str$(C0STITUZIONEP(PERSONAGGIO))-" "+")>";RESISTENZAPERSONAGGIO$;
  6497.  If RESISTENZAPERSONAGGIO$<>""
  6498.   RESISTENZAPERSONAGGIO=Val(RESISTENZAPERSONAGGIO$)
  6499.   LIMITI[RESISTENZAPERSONAGGIO,0,C0STITUZIONEP(PERSONAGGIO)]
  6500.   RESISTENZAP(PERSONAGGIO)=Param
  6501.   If RESISTENZAP(PERSONAGGIO)=0
  6502.    For A=0 To NUMEROO
  6503.     If POSIZIONEO(A)=-1-PERSONAGGIO and Btst(0,TIPOO(A))=True
  6504.      POSIZIONEO(A)=POSIZIONEP(PERSONAGGIO)
  6505.      If Btst(1,TIPOO(A))=True
  6506.       Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(A))
  6507.      Else 
  6508.       Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(A))
  6509.      End If 
  6510.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  6511.       For B=0 To NUMEROO
  6512.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  6513.         If Btst(1,TIPOO(B))=True
  6514.          Add PESONETTOP(PERSONAGGIO),-PESORESTOCO(CATEGORIAO(B))
  6515.         Else 
  6516.          Add PESONETTOP(PERSONAGGIO),-PESOCO(CATEGORIAO(B))
  6517.         End If 
  6518.        End If 
  6519.       Next B
  6520.       For B=1 To NUMEROP
  6521.        If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  6522.         Add PESONETTOP(PERSONAGGIO),-PESOP(B)*1000
  6523.         Add PESONETTOP(PERSONAGGIO),-PESONETTOP(B)
  6524.        End If 
  6525.       Next B
  6526.      End If 
  6527.     End If 
  6528.    Next A
  6529.    Add SOLDIL(POSIZIONEP(PERSONAGGIO)),SOLDIP(PERSONAGGIO)
  6530.    Add PESONETTOP(PERSONAGGIO),-SOLDIP(PERSONAGGIO)*PESOS
  6531.    SOLDIP(PERSONAGGIO)=0
  6532.   End If 
  6533.  End If 
  6534.  Cls 
  6535.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6536.  Print "Sesso del personaggio";PERSONAGGIO;">";
  6537.  If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  6538.  Locate 0,ULTIMALINEA
  6539.  Input "Nuovo sesso del personaggio"+Str$(PERSONAGGIO)+" (M=maschile F=femminile)>";SESSOPERSONAGGIO$;
  6540.  SESSOPERSONAGGIO$=Lower$(Left$(SESSOPERSONAGGIO$,1))
  6541.  If SESSOPERSONAGGIO$<>""
  6542.   If SESSOPERSONAGGIO$="f"
  6543.    Bset 1,TIPOP(PERSONAGGIO)
  6544.   End If 
  6545.   If SESSOPERSONAGGIO$="m"
  6546.    Bclr 1,TIPOP(PERSONAGGIO)
  6547.   End If 
  6548.  End If 
  6549.  If PERSONAGGIO>0
  6550.   Cls 
  6551.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6552.   Print "Condizione del personaggio";PERSONAGGIO;">";
  6553.   If Btst(3,TIPOP(PERSONAGGIO))=True
  6554.    Print "Nemic";
  6555.   Else 
  6556.    Print "Amic";
  6557.   End If 
  6558.   If Btst(1,TIPOP(PERSONAGGIO))=True
  6559.    Print "a"
  6560.   Else 
  6561.    Print "o"
  6562.   End If 
  6563.   Locate 0,ULTIMALINEA
  6564.   Input "Nuova condizione del personaggio"+Str$(PERSONAGGIO)+" (A=amico/a N=nemico/a)>";CONDIZIONEPERSONAGGIO$;
  6565.   CONDIZIONEPERSONAGGIO$=Lower$(Left$(CONDIZIONEPERSONAGGIO$,1))
  6566.   If CONDIZIONEPERSONAGGIO$<>""
  6567.    If CONDIZIONEPERSONAGGIO$="n"
  6568.     Bset 3,TIPOP(PERSONAGGIO)
  6569.    End If 
  6570.    If CONDIZIONEPERSONAGGIO$="a"
  6571.     Bclr 3,TIPOP(PERSONAGGIO)
  6572.    End If 
  6573.   End If 
  6574.  End If 
  6575.  SOLDIPRECEDENTI=SOLDIP(PERSONAGGIO)
  6576.  Cls 
  6577.  Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6578.  Print "Soldi del personaggio";PERSONAGGIO;">";Str$(SOLDIPRECEDENTI)-" ";" ";
  6579.  If SOLDIPRECEDENTI=1 Then Print "soldo" Else Print "soldi"
  6580.  Locate 0,ULTIMALINEA
  6581.  Input "Nuovi soldi del personaggio"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDIPERSONAGGIO$;
  6582.  If SOLDIPERSONAGGIO$<>""
  6583.   SOLDIPERSONAGGIO=Val(SOLDIPERSONAGGIO$)
  6584.   Proc LIMITI[SOLDIPERSONAGGIO,0,65535] : SOLDIP(PERSONAGGIO)=Param
  6585.   If SOLDIPERSONAGGIO>0
  6586.    Add PESONETTOP(PERSONAGGIO),-SOLDIPRECEDENTI*PESOS
  6587.    Add PESONETTOP(PERSONAGGIO),SOLDIPERSONAGGIO*PESOS
  6588.   End If 
  6589.  End If 
  6590.  If PERSONAGGIO>0
  6591.   Cls 
  6592.   Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6593.   Print "Inizio sonno del personaggio>";PERSONAGGIO;">";
  6594.   _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  6595.   Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  6596.   M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  6597.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  6598.   Locate 0,ULTIMALINEA
  6599.   Input "Ore del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-23)>";INIZIOSONNOPERSONAGGIO$;
  6600.   If INIZIOSONNOPERSONAGGIO$<>""
  6601.    INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6602.    Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,23] : INIZIOSONNOP(PERSONAGGIO)=Param*60
  6603.    Locate 0,ULTIMALINEA
  6604.    Input "Minuti del nuovo inizio del sonno del personaggio"+Str$(PERSONAGGIO)+" (0-59)>";INIZIOSONNOPERSONAGGIO$;
  6605.    If INIZIOSONNOPERSONAGGIO$<>""
  6606.     INIZIOSONNOPERSONAGGIO=Val(INIZIOSONNOPERSONAGGIO$)
  6607.     Proc LIMITI[INIZIOSONNOPERSONAGGIO,0,59] : Add INIZIOSONNOP(PERSONAGGIO),Param
  6608.    End If 
  6609.   End If 
  6610.   Curs Off 
  6611.   For A=0 To 7
  6612.    Cls 
  6613.    Print "Nome del personaggio";PERSONAGGIO;">";NOMEP$(PERSONAGGIO)
  6614.    AZIONE=AZIONEP(A,PERSONAGGIO)
  6615.    PARA=PARAAAZIONEP(A,PERSONAGGIO)
  6616.    PARB=PARABAZIONEP(A,PERSONAGGIO)
  6617.    PARC=PARACAZIONEP(A,PERSONAGGIO)
  6618.    Print "Azione";A+1;">";
  6619.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6620.    Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scelta nuova azione Spazio conferma",ULTIMALINEA]
  6621.    Repeat 
  6622.     Print At(0,ULTIMALINEA-2); : Cline : Print : Cline : Cmove ,-1
  6623.     Print "azione";A+1;">";
  6624.     Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  6625.     Repeat 
  6626.      TASTOPREMUTO$=Inkey$
  6627.     Until TASTOPREMUTO$<>""
  6628.     If TASTOPREMUTO$=Cup$
  6629.      Add AZIONE,-1,1 To 41
  6630.     End If 
  6631.     If TASTOPREMUTO$=Cdown$
  6632.      Add AZIONE,1,1 To 41
  6633.     End If 
  6634.    Until TASTOPREMUTO$=" "
  6635.    AZIONEP(A,PERSONAGGIO)=AZIONE
  6636.    Proc TIC["Vuoi modificare i parametri dell'azione (s/n) ?",ULTIMALINEA]
  6637.    RISPOSTA$=Input$(1)
  6638.    If RISPOSTA$="s"
  6639.     Proc INSERISCIPARAMETRIAZIONE[AZIONE,A,PERSONAGGIO]
  6640.     Curs Off 
  6641.    End If 
  6642.   Next A
  6643.  End If 
  6644.  Curs Off 
  6645. End Proc
  6646. Procedure M0DREGIONE
  6647.  Cls 
  6648.  Print "Nome della regione";REGIONE;">";NOMER$(REGIONE)
  6649.  Locate 0,ULTIMALINEA : Input "Nuovo nome della regione"+Str$(REGIONE)+">";NOMEREGIONE$;
  6650.  If NOMEREGIONE$<>"" Then NOMER$(REGIONE)=NOMEREGIONE$
  6651.  Curs Off 
  6652. End Proc
  6653. Procedure M0DSTANZA
  6654.  Cls 
  6655.  Print "Nome della stanza";STANZA;">";NOMES$(STANZA,EDIFICIO)
  6656.  Locate 0,ULTIMALINEA
  6657.  Input "Nuovo nome della stanza"+Str$(LUOGO)+">";NOMESTANZA$;
  6658.  If NOMESTANZA$<>"" Then NOMES$(STANZA,EDIFICIO)=NOMESTANZA$
  6659.  DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  6660.  Cls 
  6661.  Print "Direzione Nord della stanza";STANZA;">";
  6662.  E=DREZIONE/$10000
  6663.  If E>0
  6664.   S=DREZIONE mod $10000
  6665.   Print "edificio";E;" stanza";S
  6666.  Else 
  6667.   If DREZIONE<$FFFF
  6668.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6669.   Else 
  6670.    Print " nessuno"
  6671.   End If 
  6672.  End If 
  6673.  Print At(0,ULTIMALINEA-1);"Direzione Nord: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6674.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6675.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6676.  If NUMEROLUOGO$<>""
  6677.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6678.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6679.    If NUMEROEDIFICIO$<>""
  6680.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6681.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6682.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6683.     If NUMEROSTANZA$<>""
  6684.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6685.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6686.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6687.     End If 
  6688.    End If 
  6689.   Else 
  6690.    If NUMEROLUOGO$="n"
  6691.     DREZIONE=$FFFF
  6692.    Else 
  6693.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6694.    End If 
  6695.   End If 
  6696.   DREZIONES(0,STANZA,EDIFICIO)=DREZIONE
  6697.  End If 
  6698.  DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  6699.  Cls 
  6700.  Print "Direzione NordEst della stanza";STANZA;">";
  6701.  E=DREZIONE/$10000
  6702.  If E>0
  6703.   S=DREZIONE mod $10000
  6704.   Print "edificio";E;" stanza";S
  6705.  Else 
  6706.   If DREZIONE<$FFFF
  6707.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6708.   Else 
  6709.    Print " nessuno"
  6710.   End If 
  6711.  End If 
  6712.  Print At(0,ULTIMALINEA-1);"Direzione NordEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6713.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6714.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6715.  If NUMEROLUOGO$<>""
  6716.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6717.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6718.    If NUMEROEDIFICIO$<>""
  6719.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6720.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6721.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6722.     If NUMEROSTANZA$<>""
  6723.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6724.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6725.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6726.     End If 
  6727.    End If 
  6728.   Else 
  6729.    If NUMEROLUOGO$="n"
  6730.     DREZIONE=$FFFF
  6731.    Else 
  6732.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6733.    End If 
  6734.   End If 
  6735.   DREZIONES(1,STANZA,EDIFICIO)=DREZIONE
  6736.  End If 
  6737.  DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  6738.  Cls 
  6739.  Print "Direzione Est della stanza";STANZA;">";
  6740.  E=DREZIONE/$10000
  6741.  If E>0
  6742.   S=DREZIONE mod $10000
  6743.   Print "edificio";E;" stanza";S
  6744.  Else 
  6745.   If DREZIONE<$FFFF
  6746.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6747.   Else 
  6748.    Print " nessuno"
  6749.   End If 
  6750.  End If 
  6751.  Print At(0,ULTIMALINEA-1);"Direzione Est: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6752.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6753.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6754.  If NUMEROLUOGO$<>""
  6755.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6756.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6757.    If NUMEROEDIFICIO$<>""
  6758.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6759.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6760.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6761.     If NUMEROSTANZA$<>""
  6762.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6763.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6764.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6765.     End If 
  6766.    End If 
  6767.   Else 
  6768.    If NUMEROLUOGO$="n"
  6769.     DREZIONE=$FFFF
  6770.    Else 
  6771.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6772.    End If 
  6773.   End If 
  6774.   DREZIONES(2,STANZA,EDIFICIO)=DREZIONE
  6775.  End If 
  6776.  DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  6777.  Cls 
  6778.  Print "Direzione SudEst della stanza";STANZA;">";
  6779.  E=DREZIONE/$10000
  6780.  If E>0
  6781.   S=DREZIONE mod $10000
  6782.   Print "edificio";E;" stanza";S
  6783.  Else 
  6784.   If DREZIONE<$FFFF
  6785.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6786.   Else 
  6787.    Print " nessuno"
  6788.   End If 
  6789.  End If 
  6790.  Print At(0,ULTIMALINEA-1);"Direzione SudEst: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6791.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6792.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6793.  If NUMEROLUOGO$<>""
  6794.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6795.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6796.    If NUMEROEDIFICIO$<>""
  6797.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6798.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6799.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6800.     If NUMEROSTANZA$<>""
  6801.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6802.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6803.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6804.     End If 
  6805.    End If 
  6806.   Else 
  6807.    If NUMEROLUOGO$="n"
  6808.     DREZIONE=$FFFF
  6809.    Else 
  6810.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6811.    End If 
  6812.   End If 
  6813.   DREZIONES(3,STANZA,EDIFICIO)=DREZIONE
  6814.  End If 
  6815.  DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  6816.  Cls 
  6817.  Print "Direzione Sud della stanza";STANZA;">";
  6818.  E=DREZIONE/$10000
  6819.  If E>0
  6820.   S=DREZIONE mod $10000
  6821.   Print "edificio";E;" stanza";S
  6822.  Else 
  6823.   If DREZIONE<$FFFF
  6824.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6825.   Else 
  6826.    Print " nessuno"
  6827.   End If 
  6828.  End If 
  6829.  Print At(0,ULTIMALINEA-1);"Direzione Sud: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6830.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6831.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6832.  If NUMEROLUOGO$<>""
  6833.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6834.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6835.    If NUMEROEDIFICIO$<>""
  6836.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6837.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6838.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6839.     If NUMEROSTANZA$<>""
  6840.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6841.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6842.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6843.     End If 
  6844.    End If 
  6845.   Else 
  6846.    If NUMEROLUOGO$="n"
  6847.     DREZIONE=$FFFF
  6848.    Else 
  6849.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6850.    End If 
  6851.   End If 
  6852.   DREZIONES(4,STANZA,EDIFICIO)=DREZIONE
  6853.  End If 
  6854.  DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  6855.  Cls 
  6856.  Print "Direzione SudOvest della stanza";STANZA;">";
  6857.  E=DREZIONE/$10000
  6858.  If E>0
  6859.   S=DREZIONE mod $10000
  6860.   Print "edificio";E;" stanza";S
  6861.  Else 
  6862.   If DREZIONE<$FFFF
  6863.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6864.   Else 
  6865.    Print " nessuno"
  6866.   End If 
  6867.  End If 
  6868.  Print At(0,ULTIMALINEA-1);"Direzione SudOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6869.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6870.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6871.  If NUMEROLUOGO$<>""
  6872.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6873.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6874.    If NUMEROEDIFICIO$<>""
  6875.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6876.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6877.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6878.     If NUMEROSTANZA$<>""
  6879.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6880.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6881.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6882.     End If 
  6883.    End If 
  6884.   Else 
  6885.    If NUMEROLUOGO$="n"
  6886.     DREZIONE=$FFFF
  6887.    Else 
  6888.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6889.    End If 
  6890.   End If 
  6891.   DREZIONES(5,STANZA,EDIFICIO)=DREZIONE
  6892.  End If 
  6893.  DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  6894.  Cls 
  6895.  Print "Direzione Ovest della stanza";STANZA;">";
  6896.  E=DREZIONE/$10000
  6897.  If E>0
  6898.   S=DREZIONE mod $10000
  6899.   Print "edificio";E;" stanza";S
  6900.  Else 
  6901.   If DREZIONE<$FFFF
  6902.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6903.   Else 
  6904.    Print " nessuno"
  6905.   End If 
  6906.  End If 
  6907.  Print At(0,ULTIMALINEA-1);"Direzione Ovest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6908.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6909.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6910.  If NUMEROLUOGO$<>""
  6911.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6912.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6913.    If NUMEROEDIFICIO$<>""
  6914.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6915.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6916.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6917.     If NUMEROSTANZA$<>""
  6918.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6919.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6920.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6921.     End If 
  6922.    End If 
  6923.   Else 
  6924.    If NUMEROLUOGO$="n"
  6925.     DREZIONE=$FFFF
  6926.    Else 
  6927.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6928.    End If 
  6929.   End If 
  6930.   DREZIONES(6,STANZA,EDIFICIO)=DREZIONE
  6931.  End If 
  6932.  DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  6933.  Cls 
  6934.  Print "Direzione NordOvest della stanza";STANZA;">";
  6935.  E=DREZIONE/$10000
  6936.  If E>0
  6937.   S=DREZIONE mod $10000
  6938.   Print "edificio";E;" stanza";S
  6939.  Else 
  6940.   If DREZIONE<$FFFF
  6941.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6942.   Else 
  6943.    Print " nessuno"
  6944.   End If 
  6945.  End If 
  6946.  Print At(0,ULTIMALINEA-1);"Direzione NordOvest: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6947.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6948.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6949.  If NUMEROLUOGO$<>""
  6950.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6951.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6952.    If NUMEROEDIFICIO$<>""
  6953.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6954.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6955.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6956.     If NUMEROSTANZA$<>""
  6957.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6958.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6959.      DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  6960.     End If 
  6961.    End If 
  6962.   Else 
  6963.    If NUMEROLUOGO$="n"
  6964.     DREZIONE=$FFFF
  6965.    Else 
  6966.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  6967.    End If 
  6968.   End If 
  6969.   DREZIONES(7,STANZA,EDIFICIO)=DREZIONE
  6970.  End If 
  6971.  DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  6972.  Cls 
  6973.  Print "Direzione Sopra della stanza";STANZA;">";
  6974.  E=DREZIONE/$10000
  6975.  If E>0
  6976.   S=DREZIONE mod $10000
  6977.   Print "edificio";E;" stanza";S
  6978.  Else 
  6979.   If DREZIONE<$FFFF
  6980.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  6981.   Else 
  6982.    Print " nessuno"
  6983.   End If 
  6984.  End If 
  6985.  Print At(0,ULTIMALINEA-1);"Direzione Sopra: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  6986.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  6987.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  6988.  If NUMEROLUOGO$<>""
  6989.   If NUMEROLUOGO$="e" and NUMEROE>-1
  6990.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  6991.    If NUMEROEDIFICIO$<>""
  6992.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  6993.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  6994.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  6995.     If NUMEROSTANZA$<>""
  6996.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  6997.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  6998.      If NUMEROSTANZA=0
  6999.       DREZIONE=NUMEROEDIFICIO*$10000
  7000.      Else 
  7001.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  7002.      End If 
  7003.     End If 
  7004.    End If 
  7005.   Else 
  7006.    If NUMEROLUOGO$="n"
  7007.     DREZIONE=$FFFF
  7008.    Else 
  7009.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  7010.    End If 
  7011.   End If 
  7012.   DREZIONES(8,STANZA,EDIFICIO)=DREZIONE
  7013.  End If 
  7014.  DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  7015.  Cls 
  7016.  Print "Direzione Sotto della stanza";STANZA;">luogo";
  7017.  E=DREZIONE/$10000
  7018.  If E>0
  7019.   S=DREZIONE mod $10000
  7020.   Print "edificio";E;" stanza";S
  7021.  Else 
  7022.   If DREZIONE<$FFFF
  7023.    Print DREZIONE;" nome>";NOMEL$(DREZIONE)
  7024.   Else 
  7025.    Print " nessuno"
  7026.   End If 
  7027.  End If 
  7028.  Print At(0,ULTIMALINEA-1);"Direzione Sotto: luogo (0-";Str$(NUMEROL)-" ";" N=Nessuno E=Edificio)";
  7029.  Locate 0,ULTIMALINEA : Input "Nuovo luogo>";NUMEROLUOGO$;
  7030.  NUMEROLUOGO$=Lower$(NUMEROLUOGO$)
  7031.  If NUMEROLUOGO$<>""
  7032.   If NUMEROLUOGO$="e" and NUMEROE>-1
  7033.    Locate 0,ULTIMALINEA : Input "Quale edificio (1-"+Str$(NUMEROE+1)-" "+") ?>";NUMEROEDIFICIO$;
  7034.    If NUMEROEDIFICIO$<>""
  7035.     NUMEROEDIFICIO=Val(NUMEROEDIFICIO$)
  7036.     Proc LIMITI[NUMEROEDIFICIO,1,NUMEROE+1] : NUMEROEDIFICIO=Param
  7037.     Locate 0,ULTIMALINEA : Input "Quale stanza (1-"+Str$(NUMEROS(NUMEROEDIFICIO)+1)-" "+") ?>";NUMEROSTANZA$;
  7038.     If NUMEROSTANZA$<>""
  7039.      NUMEROSTANZA=Val(NUMEROSTANZA$) : Dec NUMEROSTANZA
  7040.      Proc LIMITI[NUMEROSTANZA,0,NUMEROS(NUMEROEDIFICIO)] : NUMEROSTANZA=Param
  7041.      If NUMEROSTANZA=0
  7042.       DREZIONE=NUMEROEDIFICIO*$10000
  7043.      Else 
  7044.       DREZIONE=NUMEROEDIFICIO*$10000+NUMEROSTANZA
  7045.      End If 
  7046.     End If 
  7047.    End If 
  7048.   Else 
  7049.    If NUMEROLUOGO$="n"
  7050.     DREZIONE=$FFFF
  7051.    Else 
  7052.     DREZIONE=Val(NUMEROLUOGO$) : Proc LIMITI[DREZIONE,0,NUMEROL] : DREZIONE=Param
  7053.    End If 
  7054.   End If 
  7055.   DREZIONES(9,STANZA,EDIFICIO)=DREZIONE
  7056.  End If 
  7057.  Cls 
  7058.  Print "Soldi nella stanza";STANZA;">";Str$(SOLDIS(STANZA,EDIFICIO))-" ";" ";
  7059.  If SOLDIS(STANZA,EDIFICIO)=1 Then Print "soldo" Else Print "soldi"
  7060.  Locate 0,ULTIMALINEA
  7061.  Input "Nuovi soldi del luogo"+Str$(PERSONAGGIO)+" (0-65535)>";SOLDINELLASTANZA$;
  7062.  If SOLDINELLASTANZA$<>""
  7063.   SOLDINELLASTANZA=Val(SOLDINELLASTANZA$)
  7064.   Proc LIMITI[SOLDINELLASTANZA,0,65535] : SOLDIS(STANZA,EDIFICIO)=Param
  7065.  End If 
  7066.  Curs Off 
  7067. End Proc
  7068. Procedure MORTE[P]
  7069.  If P=0
  7070.   COMPIUTAAZIONE=0
  7071.   Print NOMEP$(0);" ï¿½ morto. La tua avventura ï¿½ finita."
  7072.   Print "La tua avventura ï¿½ durata";
  7073.   GIORNI=TEMP0TRASCORSO/1440
  7074.   If GIORNI>0
  7075.    Print GIORNI;
  7076.    If GIORNI=1
  7077.    Print " giorno"; Else Print " giorni";
  7078.    End If 
  7079.   End If 
  7080.   _ORE=TEMP0TRASCORSO/60 mod 24
  7081.   If _ORE>0
  7082.    Print _ORE;
  7083.    If _ORE=1
  7084.    Print " ora"; Else Print " ore";
  7085.    End If 
  7086.   End If 
  7087.   M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  7088.   If M1NUTI=1
  7089.   Print " minuto"; Else Print " minuti";
  7090.   End If 
  7091.   Print " di gioco."
  7092.   Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  7093.  Else 
  7094.   If Btst(2,TIPOP(0))=False
  7095.    Remember X : Remember Y 
  7096.    Print NOMEP$(P);" ï¿½ mort";
  7097.    If Btst(1,TIPOP(P))=True
  7098.     Print "a"
  7099.    Else 
  7100.     Print "o"
  7101.    End If 
  7102.   End If 
  7103.  End If 
  7104.  For A=0 To NUMEROO
  7105.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  7106.    POSIZIONEO(A)=POSIZIONEP(P)
  7107.    If Btst(1,TIPOO(A))=True
  7108.     Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(A))
  7109.    Else 
  7110.     Add PESONETTOP(P),-PESOCO(CATEGORIAO(A))
  7111.    End If 
  7112.    If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  7113.     For B=0 To NUMEROO
  7114.      If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  7115.       If Btst(1,TIPOO(B))=True
  7116.        Add PESONETTOP(P),-PESORESTOCO(CATEGORIAO(B))
  7117.       Else 
  7118.        Add PESONETTOP(P),-PESOCO(CATEGORIAO(B))
  7119.       End If 
  7120.      End If 
  7121.     Next B
  7122.     For B=1 To NUMEROP
  7123.      If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(B))=False
  7124.       Add PESONETTOP(P),-PESOP(B)*1000
  7125.       Add PESONETTOP(P),-PESONETTOP(B)
  7126.      End If 
  7127.     Next B
  7128.    End If 
  7129.   End If 
  7130.  Next A
  7131.  Add SOLDIL(POSIZIONEP(P)),SOLDIP(P)
  7132.  Add PESONETTOP(P),-SOLDIP(P)*PESOS
  7133.  SOLDIP(P)=0
  7134. End Proc
  7135. Procedure MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  7136.  If AZIONE=1
  7137.   Print "dai ai personaggi";PARA;" oggett";
  7138.   If PARA=1
  7139.    Print "o"
  7140.   Else 
  7141.    Print "i"
  7142.   End If 
  7143.  Else If AZIONE=2
  7144.   Print "dai ai personaggi";PARA;" ";
  7145.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7146.   If PARA=1
  7147.    Print NOMESCO$(PARB)
  7148.   Else 
  7149.    Print NOMEPCO$(PARB)
  7150.   End If 
  7151.  Else If AZIONE=3
  7152.   Print "dai ai personaggi";PARA;" oggett";
  7153.   If PARA=1
  7154.    Print "o ";
  7155.   Else 
  7156.    Print "i ";
  7157.   End If 
  7158.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7159.  Else If AZIONE=4
  7160.   Print "dai ai personaggi";PARA;" personaggi";
  7161.   If PARA=1
  7162.    Print "o"
  7163.   Else 
  7164.    Print 
  7165.   End If 
  7166.  Else If AZIONE=5
  7167.   Print "dai ai personaggi ";
  7168.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7169.   Print NOMEP$(PARA)
  7170.  Else If AZIONE=6
  7171.   Print "dai a ";
  7172.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7173.   Print NOMEP$(PARA);PARB;" oggett";
  7174.   If PARB=1
  7175.    Print "o"
  7176.   Else 
  7177.    Print "i"
  7178.   End If 
  7179.  Else If AZIONE=7
  7180.   Print "dai a ";
  7181.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7182.   Print NOMEP$(PARA);PARB;" ";
  7183.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7184.   If PARB=1
  7185.    Print NOMESCO$(PARC)
  7186.   Else 
  7187.    Print NOMEPCO$(PARC)
  7188.   End If 
  7189.  Else If AZIONE=8
  7190.   Print "dai a ";
  7191.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7192.   Print NOMEP$(PARA);PARB;" oggett";
  7193.   If PARB=1
  7194.    Print "o ";
  7195.   Else 
  7196.    Print "i ";
  7197.   End If 
  7198.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7199.  Else If AZIONE=9
  7200.   Print "dai a ";
  7201.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7202.   Print NOMEP$(PARA);PARB;" personaggi";
  7203.   If PARB=1
  7204.    Print "o"
  7205.   Else 
  7206.    Print 
  7207.   End If 
  7208.  Else If AZIONE=10
  7209.   Print "dai a ";
  7210.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7211.   Print NOMEP$(PARA);" ";
  7212.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7213.   Print NOMEP$(PARB)
  7214.  Else If AZIONE=11
  7215.   Print "lascia";PARA;" oggett";
  7216.   If PARA=1
  7217.    Print "o"
  7218.   Else 
  7219.    Print "i"
  7220.   End If 
  7221.  Else If AZIONE=12
  7222.   Print "lascia";PARA;" ";
  7223.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7224.   If PARA=1
  7225.    Print NOMESCO$(PARB)
  7226.   Else 
  7227.    Print NOMEPCO$(PARB)
  7228.   End If 
  7229.  Else If AZIONE=13
  7230.   Print "lascia";PARA;" oggett";
  7231.   If PARA=1
  7232.    Print "o ";
  7233.   Else 
  7234.    Print "i ";
  7235.   End If 
  7236.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7237.  Else If AZIONE=14
  7238.   Print "lascia";PARA;" personaggi";
  7239.   If PARA=1
  7240.    Print "o"
  7241.   Else 
  7242.    Print 
  7243.   End If 
  7244.  Else If AZIONE=15
  7245.   Print "lascia ";
  7246.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7247.   Print NOMEP$(PARA)
  7248.  Else If AZIONE=16
  7249.   Print "muoviti"
  7250.  Else If AZIONE=17
  7251.   Print "prendi";PARA;" oggett";
  7252.   If PARA=1
  7253.    Print "o"
  7254.   Else 
  7255.    Print "i"
  7256.   End If 
  7257.  Else If AZIONE=18
  7258.   Print "prendi";PARA;" ";
  7259.   Proc LIMITI[PARB,0,NUMEROCO] : PARB=Param
  7260.   If PARA=1
  7261.    Print NOMESCO$(PARB)
  7262.   Else 
  7263.    Print NOMEPCO$(PARB)
  7264.   End If 
  7265.  Else If AZIONE=19
  7266.   Print "prendi";PARA;" oggett";
  7267.   If PARA=1
  7268.    Print "o ";
  7269.   Else 
  7270.    Print "i ";
  7271.   End If 
  7272.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7273.  Else If AZIONE=20
  7274.   Print "prendi";PARA;" personaggi";
  7275.   If PARA=1
  7276.    Print "o"
  7277.   Else 
  7278.    Print 
  7279.   End If 
  7280.  Else If AZIONE=21
  7281.   Print "prendi ";
  7282.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7283.   Print NOMEP$(PARA)
  7284.  Else If AZIONE=22
  7285.   Print "segui"
  7286.  Else If AZIONE=23
  7287.   Print "segui ";
  7288.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7289.   Print NOMEP$(PARA)
  7290.  Else If AZIONE=24
  7291.   Print "usa un'oggetto su";PARA;" oggett";
  7292.   If PARA=1
  7293.    Print "o"
  7294.   Else 
  7295.    Print "i"
  7296.   End If 
  7297.  Else If AZIONE=25
  7298.   Print "usa un'oggetto su";PARA;" ";
  7299.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7300.   If PARA=1
  7301.    Print NOMESCO$(PARB)
  7302.   Else 
  7303.    Print NOMEPCO$(PARB)
  7304.   End If 
  7305.  Else If AZIONE=26
  7306.   Print "usa un'oggetto su";PARA;" oggett";
  7307.   If PARA=1
  7308.    Print "o ";
  7309.   Else 
  7310.    Print "i ";
  7311.   End If 
  7312.   Proc MOSTRACATEGORIAPERAZIONE[PARB]
  7313.  Else If AZIONE=27
  7314.   Print "usa un'oggetto su";PARA;" personaggi";
  7315.   If PARA=1
  7316.    Print "o"
  7317.   Else 
  7318.    Print 
  7319.   End If 
  7320.  Else If AZIONE=28
  7321.   Print "usa un'oggetto su ";
  7322.   Proc LIMITI[PARA,0,NUMEROP] : PARA=Param
  7323.   Print NOMEP$(PARA)
  7324.  Else If AZIONE=29
  7325.   Print "usa 1 ";
  7326.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7327.   Print NOMESCO$(PARA);" su";PARB;" oggett";
  7328.   If PARB=1
  7329.    Print "o"
  7330.   Else 
  7331.    Print "i"
  7332.   End If 
  7333.  Else If AZIONE=30
  7334.   Print "usa 1 ";
  7335.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7336.   Print NOMESCO$(PARA);" su";PARB;" ";
  7337.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7338.   If PARB=1
  7339.    Print NOMESCO$(PARC)
  7340.   Else 
  7341.    Print NOMEPCO$(PARC)
  7342.   End If 
  7343.  Else If AZIONE=31
  7344.   Print "usa 1 ";
  7345.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7346.   Print NOMESCO$(PARA);" su";PARB;" oggett";
  7347.   If PARB=1
  7348.    Print "o ";
  7349.   Else 
  7350.    Print "i ";
  7351.   End If 
  7352.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7353.  Else If AZIONE=32
  7354.   Print "usa 1 ";
  7355.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7356.   Print NOMESCO$(PARA);" su";PARB;" personaggi";
  7357.   If PARB=1
  7358.    Print "o"
  7359.   Else 
  7360.    Print 
  7361.   End If 
  7362.  Else If AZIONE=33
  7363.   Print "usa 1 ";
  7364.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7365.   Print NOMESCO$(PARA);" su ";
  7366.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7367.   Print NOMEP$(PARB)
  7368.  Else If AZIONE=34
  7369.   Print "usa un'oggetto ";
  7370.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7371.   Print Space$(9);"su";PARB;" oggett";
  7372.   If PARB=1
  7373.    Print "o"
  7374.   Else 
  7375.    Print "i"
  7376.   End If 
  7377.  Else If AZIONE=35
  7378.   Print "usa un'oggetto ";
  7379.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7380.   Print Space$(9);"su";PARB;" ";
  7381.   Proc LIMITI[PARC,0,NUMEROCO] : PARC=Param
  7382.   If PARB=1
  7383.    Print NOMESCO$(PARC)
  7384.   Else 
  7385.    Print NOMEPCO$(PARC)
  7386.   End If 
  7387.  Else If AZIONE=36
  7388.   Print "usa un'oggetto ";
  7389.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7390.   Print Space$(9);"su";PARB;" oggett";
  7391.   If PARB=1
  7392.    Print "o ";
  7393.   Else 
  7394.    Print "i ";
  7395.   End If 
  7396.   Proc MOSTRACATEGORIAPERAZIONE[PARC]
  7397.  Else If AZIONE=37
  7398.   Print "usa un'oggetto ";
  7399.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7400.   Print Space$(9);"su";PARB;" personaggi";
  7401.   If PARB=1
  7402.    Print "o"
  7403.   Else 
  7404.    Print 
  7405.   End If 
  7406.  Else If AZIONE=38
  7407.   Print "usa un'oggetto ";
  7408.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7409.   Print Space$(9);"su ";
  7410.   Proc LIMITI[PARB,0,NUMEROP] : PARB=Param
  7411.   Print NOMEP$(PARB)
  7412.  Else If AZIONE=39
  7413.   Print "usati un'oggetto"
  7414.  Else If AZIONE=40
  7415.   Print "usati un'oggetto ";
  7416.   Proc LIMITI[PARA,0,NUMEROCO] : PARA=Param
  7417.   Print NOMESCO$(PARA)
  7418.  Else If AZIONE=41
  7419.   Print "usati un'oggetto ";
  7420.   Proc MOSTRACATEGORIAPERAZIONE[PARA]
  7421.  End If 
  7422. End Proc
  7423. Procedure MOSTRACATEGORIADEGLIOGGETTI
  7424.  Cls 
  7425.  If M0DIFICA=False
  7426.   Proc TIC[MESSAGGIO3$,0] : Print 
  7427.  End If 
  7428.  Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>"
  7429.  Print NOMESCO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPCO$(CATEGORIADEGLIOGGETTI)
  7430.  Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7431.  PESOOGGETTO=PESOCO(CATEGORIADEGLIOGGETTI)
  7432.  Print Str$(PESOOGGETTO)-" ";" ";
  7433.  If PESOOGGETTO=1
  7434.   Print "grammo"
  7435.  Else 
  7436.   Print "grammi"
  7437.  End If 
  7438.  Print "Nome singolare e plurale della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>"
  7439.  Print NOMESRO$(CATEGORIADEGLIOGGETTI);"<=>";NOMEPRO$(CATEGORIADEGLIOGGETTI)
  7440.  Print "Peso della categoria";CATEGORIADEGLIOGGETTI;" dei resti degli oggetti>";
  7441.  PESORESTOOGGETTO=PESORESTOCO(CATEGORIADEGLIOGGETTI)
  7442.  Print Str$(PESORESTOOGGETTO)-" ";" ";
  7443.  If PESORESTOOGGETTO=1
  7444.   Print "grammo"
  7445.  Else 
  7446.   Print "grammi"
  7447.  End If 
  7448.  Print "Parametro della categoria";CATEGORIADEGLIOGGETTI;" degli oggetti>";
  7449.  Print Str$(PARATIPOCO(CATEGORIADEGLIOGGETTI))-" "
  7450.  If Btst(0,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Commestibile"
  7451.  If Btst(1,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Contenitore"
  7452.  If Btst(2,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Difensivo"
  7453.  If Btst(3,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Leggibile"
  7454.  If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Liquido"
  7455.  If Btst(5,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Magico"
  7456.  If Btst(6,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Offensivo"
  7457.  If Btst(7,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Residente"
  7458.  If Btst(4,TIPOCO(CATEGORIADEGLIOGGETTI))=False Then Print "Solido"
  7459.  If Btst(8,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasferibile"
  7460.  If Btst(9,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Trasparente"
  7461.  If Btst(10,TIPOCO(CATEGORIADEGLIOGGETTI))=True Then Print "Vincolato"
  7462. End Proc
  7463. Procedure MOSTRACATEGORIAPERAZIONE[CATEGORIA]
  7464.  If Btst(0,CATEGORIA)=True Then Print "commestibile ";
  7465.  If Btst(1,CATEGORIA)=True Then Print "contenitore ";
  7466.  If Btst(2,CATEGORIA)=True Then Print "difensivo ";
  7467.  If Btst(3,CATEGORIA)=True Then Print "leggibile ";
  7468.  If Btst(4,CATEGORIA)=True Then Print "liquido "; Else Print "solido ";
  7469.  If Btst(5,CATEGORIA)=True Then Print "magico ";
  7470.  If Btst(6,CATEGORIA)=True Then Print "offensivo ";
  7471.  If Btst(8,CATEGORIA)=True Then Print "trasferibile ";
  7472.  If Btst(9,CATEGORIA)=True Then Print "trasparente ";
  7473.  If Btst(10,CATEGORIA)=True Then Print "vincolato ";
  7474.  Print 
  7475. End Proc
  7476. Procedure MOSTRACATEGORIAPERINSERIMENTO[P]
  7477.  Repeat 
  7478.   Cls 
  7479.   Print "Nome del personaggio";P;">";NOMEP$(P)
  7480.   Print At(0,ULTIMALINEA-11);"Categoria";CATEGORIA;" degli oggetti>";NOMEPCO$(CATEGORIA)
  7481.   If Btst(0,TIPOCO(CATEGORIA))=True Then Print "commestibile "
  7482.   If Btst(1,TIPOCO(CATEGORIA))=True Then Print "contenitore "
  7483.   If Btst(2,TIPOCO(CATEGORIA))=True Then Print "difensivo "
  7484.   If Btst(3,TIPOCO(CATEGORIA))=True Then Print "leggibile "
  7485.   If Btst(4,TIPOCO(CATEGORIA))=True Then Print "liquido " Else Print "solido "
  7486.   If Btst(5,TIPOCO(CATEGORIA))=True Then Print "magico "
  7487.   If Btst(6,TIPOCO(CATEGORIA))=True Then Print "offensivo "
  7488.   If Btst(8,TIPOCO(CATEGORIA))=True Then Print "trasferibile "
  7489.   If Btst(9,TIPOCO(CATEGORIA))=True Then Print "trasparente "
  7490.   If Btst(10,TIPOCO(CATEGORIA))=True Then Print "vincolato "
  7491.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli la categoria Spazio conferma",ULTIMALINEA]
  7492.   Repeat 
  7493.    TASTOPREMUTO$=Inkey$
  7494.   Until TASTOPREMUTO$<>""
  7495.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  7496.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  7497.  Until TASTOPREMUTO$=" "
  7498. End Proc[TIPOCO(CATEGORIA)]
  7499. Procedure MOSTRAGLIEDIFICI
  7500.  Shared TASTOPREMUTO$
  7501.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta edificio...C -> carica un"
  7502.  MESSAGGIO2$=MESSAGGIO2$+" file di Adventures Conceiver...D -> mostra il desti"
  7503.  MESSAGGIO2$=MESSAGGIO2$+"no (scopo) del gioco...G -> gioca un'avventura...I -"
  7504.  MESSAGGIO2$=MESSAGGIO2$+"> mostra le stanze dell'edificio corrente...K -> mos"
  7505.  MESSAGGIO2$=MESSAGGIO2$+"tra le categorie degli oggetti...L -> mostra i luogh"
  7506.  MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7507.  MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7508.  MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7509.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7510.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7511.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7512.  Repeat 
  7513.   Proc MOSTRAEDIFICIO
  7514.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7515.   CARATTEREMESSAGGIO=0
  7516.   Repeat 
  7517.    TASTOPREMUTO$=Inkey$
  7518.    Proc MESSAGGIO[MESSAGGIO2$]
  7519.   Until TASTOPREMUTO$<>""
  7520.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7521.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7522.   If TASTOPREMUTO$="d" Then Exit 
  7523.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7524.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7525.   If TASTOPREMUTO$="k" Then Exit 
  7526.   If TASTOPREMUTO$="l" Then Exit 
  7527.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7528.   If TASTOPREMUTO$="o" Then Exit 
  7529.   If TASTOPREMUTO$="p" Then Exit 
  7530.   If TASTOPREMUTO$="r" Then Exit 
  7531.   If TASTOPREMUTO$="s"
  7532.    Proc DAVARIABILIABANCO[False]
  7533.    If SENZAMEMORIA=False
  7534.     Proc DAVARIABILIABANCO[True]
  7535.     If SENZAMEMORIA=False
  7536.      Proc SALVAUNFILE
  7537.     End If 
  7538.    End If 
  7539.   End If 
  7540.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7541.   If EDIFICIO>-1
  7542.    If TASTOPREMUTO$=Cup$
  7543.     Add EDIFICIO,-1,0 To NUMEROE
  7544.    End If 
  7545.    If TASTOPREMUTO$=Cdown$
  7546.     Add EDIFICIO,1,0 To NUMEROE
  7547.    End If 
  7548.   End If 
  7549.  Until TASTOPREMUTO$=Chr$(27)
  7550. End Proc
  7551. Procedure MOSTRAGLIOGGETTI
  7552.  Shared TASTOPREMUTO$
  7553.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta oggetto...C -> carica un "
  7554.  MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7555.  MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7556.  MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7557.  MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7558.  MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi M -> modifica un'avventur"
  7559.  MESSAGGIO2$=MESSAGGIO2$+"a...P -> mostra i personaggi...R -> mostra le region"
  7560.  MESSAGGIO2$=MESSAGGIO2$+"i...S -> salva un file di Adventures Conceiver...? -"
  7561.  MESSAGGIO2$=MESSAGGIO2$+"> mostra i meriti...Esc -> esci da Adventures Concei"
  7562.  MESSAGGIO2$=MESSAGGIO2$+"ver..."
  7563.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7564.  Repeat 
  7565.   Proc MOSTRAOGGETTO
  7566.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7567.   CARATTEREMESSAGGIO=0
  7568.   Repeat 
  7569.    TASTOPREMUTO$=Inkey$
  7570.    Proc MESSAGGIO[MESSAGGIO2$]
  7571.   Until TASTOPREMUTO$<>""
  7572.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7573.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7574.   If TASTOPREMUTO$="d" Then Exit 
  7575.   If TASTOPREMUTO$="e" Then Exit 
  7576.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7577.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7578.   If TASTOPREMUTO$="k" Then Exit 
  7579.   If TASTOPREMUTO$="l" Then Exit 
  7580.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7581.   If TASTOPREMUTO$="p" Then Exit 
  7582.   If TASTOPREMUTO$="r" Then Exit 
  7583.   If TASTOPREMUTO$="s"
  7584.    Proc DAVARIABILIABANCO[False]
  7585.    If SENZAMEMORIA=False
  7586.     Proc DAVARIABILIABANCO[True]
  7587.     If SENZAMEMORIA=False
  7588.      Proc SALVAUNFILE
  7589.     End If 
  7590.    End If 
  7591.   End If 
  7592.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7593.   If TASTOPREMUTO$=Cup$ Then Add OGGETTO,-1,0 To NUMEROO
  7594.   If TASTOPREMUTO$=Cdown$ Then Add OGGETTO,1,0 To NUMEROO
  7595.  Until TASTOPREMUTO$=Chr$(27)
  7596. End Proc
  7597. Procedure MOSTRAEDIFICIO
  7598.  Cls 
  7599.  If M0DIFICA=False
  7600.   Proc TIC[MESSAGGIO3$,0] : Print 
  7601.  End If 
  7602.  If EDIFICIO>-1
  7603.   Print "Edificio";EDIFICIO;":"
  7604.   Print "Nome>";NOMEE$(EDIFICIO)
  7605.   Print "Posizione>luogo";POSIZIONEE(EDIFICIO);" nome>";NOMEL$(POSIZIONEE(EDIFICIO))
  7606.   Print "Numero delle stanze>";Str$(NUMEROS(EDIFICIO)+1)-" "
  7607.  Else 
  7608.   Print "Nessun edificio"
  7609.  End If 
  7610. End Proc
  7611. Procedure MOSTRAILDESTINODELGIOCO
  7612.  Shared TASTOPREMUTO$
  7613.  MESSAGGIO2$="C -> carica un file di Adventures Conceiver...E -> mostra gli ed"
  7614.  MESSAGGIO2$=MESSAGGIO2$+"ifici...G -> gioca un'avventura...I -> mostra le sta"
  7615.  MESSAGGIO2$=MESSAGGIO2$+"nze dell'edificio corrente...K -> mostra le categori"
  7616.  MESSAGGIO2$=MESSAGGIO2$+"e degli oggetti...L -> mostra i luoghi...M -> modifi"
  7617.  MESSAGGIO2$=MESSAGGIO2$+"ca un'avventura...O -> mostra gli oggetti...P -> mos"
  7618.  MESSAGGIO2$=MESSAGGIO2$+"tra i personaggi...R -> mostra le regioni...S -> sal"
  7619.  MESSAGGIO2$=MESSAGGIO2$+"va un file di Adventures Conceiver...? -> mostra i m"
  7620.  MESSAGGIO2$=MESSAGGIO2$+"eriti...Esc -> esci da Adventures Conceiver..."
  7621.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7622.  Repeat 
  7623.   Proc SCOPODELGIOCO[True]
  7624.   Print "Nemici>";
  7625.   If ANEMICI=True Then Print "attivati" Else Print "disattivati"
  7626.   Print "Musica>";
  7627.   If _MUSICA=True Then Print "attivata" Else Print "disattivata"
  7628.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7629.   CARATTEREMESSAGGIO=0
  7630.   Repeat 
  7631.    TASTOPREMUTO$=Inkey$
  7632.    Proc MESSAGGIO[MESSAGGIO2$]
  7633.   Until TASTOPREMUTO$<>""
  7634.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7635.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7636.   If TASTOPREMUTO$="e" Then Exit 
  7637.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7638.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7639.   If TASTOPREMUTO$="k" Then Exit 
  7640.   If TASTOPREMUTO$="l" Then Exit 
  7641.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7642.   If TASTOPREMUTO$="o" Then Exit 
  7643.   If TASTOPREMUTO$="p" Then Exit 
  7644.   If TASTOPREMUTO$="r" Then Exit 
  7645.   If TASTOPREMUTO$="s"
  7646.    Proc DAVARIABILIABANCO[False]
  7647.    If SENZAMEMORIA=False
  7648.     Proc DAVARIABILIABANCO[True]
  7649.     If SENZAMEMORIA=False
  7650.      Proc SALVAUNFILE
  7651.     End If 
  7652.    End If 
  7653.   End If 
  7654.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7655.  Until TASTOPREMUTO$=Chr$(27)
  7656. End Proc
  7657. Procedure MOSTRAILUOGHI
  7658.  Shared TASTOPREMUTO$
  7659.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta luogo...C -> carica un fi"
  7660.  MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...D -> mostra il destino "
  7661.  MESSAGGIO2$=MESSAGGIO2$+"(scopo) del gioco...E -> mostra gli edifici...G -> g"
  7662.  MESSAGGIO2$=MESSAGGIO2$+"ioca un'avventura...I -> mostra le stanze dell'edifi"
  7663.  MESSAGGIO2$=MESSAGGIO2$+"cio corrente...K -> mostra le categorie degli oggett"
  7664.  MESSAGGIO2$=MESSAGGIO2$+"i...M -> modifica un'avventura...O -> mostra gli ogg"
  7665.  MESSAGGIO2$=MESSAGGIO2$+"etti...P -> mostra i personaggi...R -> mostra le reg"
  7666.  MESSAGGIO2$=MESSAGGIO2$+"ioni...S -> salva un file di Adventures Conceiver..."
  7667.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7668.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7669.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7670.  Repeat 
  7671.   Proc MOSTRALUOGO
  7672.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7673.   CARATTEREMESSAGGIO=0
  7674.   Repeat 
  7675.    TASTOPREMUTO$=Inkey$
  7676.    Proc MESSAGGIO[MESSAGGIO2$]
  7677.   Until TASTOPREMUTO$<>""
  7678.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7679.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7680.   If TASTOPREMUTO$="d" Then Exit 
  7681.   If TASTOPREMUTO$="e" Then Exit 
  7682.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7683.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7684.   If TASTOPREMUTO$="k" Then Exit 
  7685.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7686.   If TASTOPREMUTO$="o" Then Exit 
  7687.   If TASTOPREMUTO$="p" Then Exit 
  7688.   If TASTOPREMUTO$="r" Then Exit 
  7689.   If TASTOPREMUTO$="s"
  7690.    Proc DAVARIABILIABANCO[False]
  7691.    If SENZAMEMORIA=False
  7692.     Proc DAVARIABILIABANCO[True]
  7693.     If SENZAMEMORIA=False
  7694.      Proc SALVAUNFILE
  7695.     End If 
  7696.    End If 
  7697.   End If 
  7698.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7699.   If TASTOPREMUTO$=Cup$ Then Add LUOGO,-1,0 To NUMEROL
  7700.   If TASTOPREMUTO$=Cdown$ Then Add LUOGO,1,0 To NUMEROL
  7701.  Until TASTOPREMUTO$=Chr$(27)
  7702. End Proc
  7703. Procedure MOSTRAIPERSONAGGI
  7704.  Shared TASTOPREMUTO$
  7705.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta personaggio...C -> carica"
  7706.  MESSAGGIO2$=MESSAGGIO2$+" un file di Adventures Conceiver...D -> mostra il de"
  7707.  MESSAGGIO2$=MESSAGGIO2$+"stino (scopo) del gioco...E -> mostra gli edifici..."
  7708.  MESSAGGIO2$=MESSAGGIO2$+"G -> gioca un'avventura...I -> mostra le stanze dell"
  7709.  MESSAGGIO2$=MESSAGGIO2$+"'edificio corrente...K -> mostra le categorie degli "
  7710.  MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7711.  MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...R -> mostra le r"
  7712.  MESSAGGIO2$=MESSAGGIO2$+"egioni...S -> salva un file di Adventures Conceiver."
  7713.  MESSAGGIO2$=MESSAGGIO2$+"..? -> mostra i meriti...Esc -> esci da Adventures C"
  7714.  MESSAGGIO2$=MESSAGGIO2$+"onceiver..."
  7715.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7716.  Repeat 
  7717.   Proc MOSTRAPERSONAGGIO
  7718.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7719.   CARATTEREMESSAGGIO=0
  7720.   Repeat 
  7721.    TASTOPREMUTO$=Inkey$
  7722.    Proc MESSAGGIO[MESSAGGIO2$]
  7723.   Until TASTOPREMUTO$<>""
  7724.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7725.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7726.   If TASTOPREMUTO$="d" Then Exit 
  7727.   If TASTOPREMUTO$="e" Then Exit 
  7728.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7729.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7730.   If TASTOPREMUTO$="k" Then Exit 
  7731.   If TASTOPREMUTO$="l" Then Exit 
  7732.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7733.   If TASTOPREMUTO$="o" Then Exit 
  7734.   If TASTOPREMUTO$="r" Then Exit 
  7735.   If TASTOPREMUTO$="s"
  7736.    Proc DAVARIABILIABANCO[False]
  7737.    If SENZAMEMORIA=False
  7738.     Proc DAVARIABILIABANCO[True]
  7739.     If SENZAMEMORIA=False
  7740.      Proc SALVAUNFILE
  7741.     End If 
  7742.    End If 
  7743.   End If 
  7744.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7745.   If TASTOPREMUTO$=Cup$ Then Add PERSONAGGIO,-1,0 To NUMEROP
  7746.   If TASTOPREMUTO$=Cdown$ Then Add PERSONAGGIO,1,0 To NUMEROP
  7747.  Until TASTOPREMUTO$=Chr$(27)
  7748. End Proc
  7749. Procedure MOSTRALECATEGORIEDEGLIOGGETTI
  7750.  Shared TASTOPREMUTO$
  7751.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta categoria...C -> carica u"
  7752.  MESSAGGIO2$=MESSAGGIO2$+"n file di Adventures Conceiver...D -> mostra il dest"
  7753.  MESSAGGIO2$=MESSAGGIO2$+"ino (scopo) del gioco...E -> mostra gli edifici...G "
  7754.  MESSAGGIO2$=MESSAGGIO2$+"-> gioca un'avventura...I -> mostra le stanze dell'e"
  7755.  MESSAGGIO2$=MESSAGGIO2$+"dificio corrente...L -> mostra i luoghi...M -> modif"
  7756.  MESSAGGIO2$=MESSAGGIO2$+"ica un'avventura...O -> mostra gli oggetti...P -> mo"
  7757.  MESSAGGIO2$=MESSAGGIO2$+"stra i personaggi...R -> mostra le regioni...S -> sa"
  7758.  MESSAGGIO2$=MESSAGGIO2$+"lva un file di Adventures Conceiver...? -> mostra i "
  7759.  MESSAGGIO2$=MESSAGGIO2$+"meriti...Esc -> esci da Adventures Conceiver..."
  7760.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7761.  Repeat 
  7762.   Proc MOSTRACATEGORIADEGLIOGGETTI
  7763.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7764.   CARATTEREMESSAGGIO=0
  7765.   Repeat 
  7766.    TASTOPREMUTO$=Inkey$
  7767.    Proc MESSAGGIO[MESSAGGIO2$]
  7768.   Until TASTOPREMUTO$<>""
  7769.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7770.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7771.   If TASTOPREMUTO$="d" Then Exit 
  7772.   If TASTOPREMUTO$="e" Then Exit 
  7773.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7774.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7775.   If TASTOPREMUTO$="l" Then Exit 
  7776.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7777.   If TASTOPREMUTO$="o" Then Exit 
  7778.   If TASTOPREMUTO$="p" Then Exit 
  7779.   If TASTOPREMUTO$="r" Then Exit 
  7780.   If TASTOPREMUTO$="s"
  7781.    Proc DAVARIABILIABANCO[False]
  7782.    If SENZAMEMORIA=False
  7783.     Proc DAVARIABILIABANCO[True]
  7784.     If SENZAMEMORIA=False
  7785.      Proc SALVAUNFILE
  7786.     End If 
  7787.    End If 
  7788.   End If 
  7789.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7790.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIADEGLIOGGETTI,-1,0 To NUMEROCO
  7791.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIADEGLIOGGETTI,1,0 To NUMEROCO
  7792.  Until TASTOPREMUTO$=Chr$(27)
  7793. End Proc
  7794. Procedure MOSTRALEREGIONI
  7795.  Shared TASTOPREMUTO$
  7796.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta regione...C -> carica un "
  7797.  MESSAGGIO2$=MESSAGGIO2$+"file di Adventures Conceiver...D -> mostra il destin"
  7798.  MESSAGGIO2$=MESSAGGIO2$+"o (scopo) del gioco...E -> mostra gli edifici...G ->"
  7799.  MESSAGGIO2$=MESSAGGIO2$+" gioca un'avventura...I -> mostra le stanze dell'edi"
  7800.  MESSAGGIO2$=MESSAGGIO2$+"ficio corrente...K -> mostra le categorie degli ogge"
  7801.  MESSAGGIO2$=MESSAGGIO2$+"tti...L -> mostra i luoghi...M -> modifica un'avvent"
  7802.  MESSAGGIO2$=MESSAGGIO2$+"ura...O -> mostra gli oggetti...P -> mostra i person"
  7803.  MESSAGGIO2$=MESSAGGIO2$+"aggi...S -> salva un file di Adventures Conceiver..."
  7804.  MESSAGGIO2$=MESSAGGIO2$+"? -> mostra i meriti...Esc -> esci da Adventures Con"
  7805.  MESSAGGIO2$=MESSAGGIO2$+"ceiver..."
  7806.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7807.  Repeat 
  7808.   Proc MOSTRAREGIONE
  7809.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7810.   CARATTEREMESSAGGIO=0
  7811.   Repeat 
  7812.    TASTOPREMUTO$=Inkey$
  7813.    Proc MESSAGGIO[MESSAGGIO2$]
  7814.   Until TASTOPREMUTO$<>""
  7815.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7816.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7817.   If TASTOPREMUTO$="d" Then Exit 
  7818.   If TASTOPREMUTO$="e" Then Exit 
  7819.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7820.   If TASTOPREMUTO$="i" and NUMEROE>-1 Then Exit 
  7821.   If TASTOPREMUTO$="k" Then Exit 
  7822.   If TASTOPREMUTO$="l" Then Exit 
  7823.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7824.   If TASTOPREMUTO$="o" Then Exit 
  7825.   If TASTOPREMUTO$="p" Then Exit 
  7826.   If TASTOPREMUTO$="s"
  7827.    Proc DAVARIABILIABANCO[False]
  7828.    If SENZAMEMORIA=False
  7829.     Proc DAVARIABILIABANCO[True]
  7830.     If SENZAMEMORIA=False
  7831.      Proc SALVAUNFILE
  7832.     End If 
  7833.    End If 
  7834.   End If 
  7835.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7836.   If TASTOPREMUTO$=Cup$ Then Add REGIONE,-1,0 To NUMEROR
  7837.   If TASTOPREMUTO$=Cdown$ Then Add REGIONE,1,0 To NUMEROR
  7838.  Until TASTOPREMUTO$=Chr$(27)
  7839. End Proc
  7840. Procedure MOSTRALESTANZE
  7841.  Shared TASTOPREMUTO$
  7842.  MESSAGGIO2$="Tasti cursore: sopra e sotto -> scelta stanza...C -> carica un f"
  7843.  MESSAGGIO2$=MESSAGGIO2$+"ile di Adventures Conceiver...D -> mostra il destino"
  7844.  MESSAGGIO2$=MESSAGGIO2$+" (scopo) del gioco...E -> mostra gli edifici...G -> "
  7845.  MESSAGGIO2$=MESSAGGIO2$+"gioca un'avventura...K -> mostra le categorie degli "
  7846.  MESSAGGIO2$=MESSAGGIO2$+"oggetti...L -> mostra i luoghi...M -> modifica un'av"
  7847.  MESSAGGIO2$=MESSAGGIO2$+"ventura...O -> mostra gli oggetti...P -> mostra i pe"
  7848.  MESSAGGIO2$=MESSAGGIO2$+"rsonaggi...R -> mostra le regioni...S -> salva un fi"
  7849.  MESSAGGIO2$=MESSAGGIO2$+"le di Adventures Conceiver...? -> mostra i meriti..."
  7850.  MESSAGGIO2$=MESSAGGIO2$+"Esc -> esci da Adventures Conceiver..."
  7851.  MESSAGGIO2$=MESSAGGIO2$+MERITI$+"..."
  7852.  Repeat 
  7853.   Proc MOSTRASTANZA
  7854.   If MESSAGGIO1$<>"" Then Proc TIC[MESSAGGIO1$,ULTIMALINEA-1]
  7855.   CARATTEREMESSAGGIO=0
  7856.   Repeat 
  7857.    TASTOPREMUTO$=Inkey$
  7858.    Proc MESSAGGIO[MESSAGGIO2$]
  7859.   Until TASTOPREMUTO$<>""
  7860.   TASTOPREMUTO$=Lower$(TASTOPREMUTO$)
  7861.   If TASTOPREMUTO$="c" Then Proc CARICAUNFILE : Proc DABANCOAVARIABILI
  7862.   If TASTOPREMUTO$="d" Then Exit 
  7863.   If TASTOPREMUTO$="e" Then Exit 
  7864.   If TASTOPREMUTO$="g" Then Proc GIOCA
  7865.   If TASTOPREMUTO$="k" Then Exit 
  7866.   If TASTOPREMUTO$="l" Then Exit 
  7867.   If TASTOPREMUTO$="m" Then Proc M0DIFICA
  7868.   If TASTOPREMUTO$="o" Then Exit 
  7869.   If TASTOPREMUTO$="p" Then Exit 
  7870.   If TASTOPREMUTO$="r" Then Exit 
  7871.   If TASTOPREMUTO$="s"
  7872.    Proc DAVARIABILIABANCO[False]
  7873.    If SENZAMEMORIA=False
  7874.     Proc DAVARIABILIABANCO[True]
  7875.     If SENZAMEMORIA=False
  7876.      Proc SALVAUNFILE
  7877.     End If 
  7878.    End If 
  7879.   End If 
  7880.   If TASTOPREMUTO$="?" Then Proc _INTERFACCIA
  7881.   If TASTOPREMUTO$=Cup$ Then Add STANZA,-1,0 To NUMEROS(EDIFICIO)
  7882.   If TASTOPREMUTO$=Cdown$ Then Add STANZA,1,0 To NUMEROS(EDIFICIO)
  7883.  Until TASTOPREMUTO$=Chr$(27)
  7884. End Proc
  7885. Procedure MOSTRALUOGO
  7886.  Cls 
  7887.  If M0DIFICA=False
  7888.   Proc TIC[MESSAGGIO3$,0] : Print 
  7889.  End If 
  7890.  Print "Luogo";LUOGO;":"
  7891.  Print "Nome>";NOMEL$(LUOGO)
  7892.  Print "Regione di appartenenza>";NOMER$(REGIONEL(LUOGO))
  7893.  Print "Tipo di luogo>";TIPOL$(TIPOL(LUOGO))
  7894.  DREZIONE=DREZIONEL(0,LUOGO)
  7895.  Print "Direzione Nord     >";
  7896.  E=DREZIONE/$10000
  7897.  If E>0
  7898.   S=DREZIONE mod $10000
  7899.   Print "edificio";E;" stanza";S
  7900.  Else 
  7901.   DREZIONE=DREZIONE mod $10000
  7902.   If DREZIONE<$FFFF
  7903.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7904.   Else 
  7905.    Print "nessun luogo"
  7906.   End If 
  7907.  End If 
  7908.  DREZIONE=DREZIONEL(1,LUOGO)
  7909.  Print "Direzione NordEst  >";
  7910.  E=DREZIONE/$10000
  7911.  If E>0
  7912.   S=DREZIONE mod $10000
  7913.   Print "edificio";E;" stanza";S
  7914.  Else 
  7915.   DREZIONE=DREZIONE mod $10000
  7916.   If DREZIONE<$FFFF
  7917.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7918.   Else 
  7919.    Print "nessun luogo"
  7920.   End If 
  7921.  End If 
  7922.  DREZIONE=DREZIONEL(2,LUOGO)
  7923.  Print "Direzione Est      >";
  7924.  E=DREZIONE/$10000
  7925.  If E>0
  7926.   S=DREZIONE mod $10000
  7927.   Print "edificio";E;" stanza";S
  7928.  Else 
  7929.   DREZIONE=DREZIONE mod $10000
  7930.   If DREZIONE<$FFFF
  7931.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7932.   Else 
  7933.    Print "nessun luogo"
  7934.   End If 
  7935.  End If 
  7936.  DREZIONE=DREZIONEL(3,LUOGO)
  7937.  Print "Direzione SudEst   >";
  7938.  E=DREZIONE/$10000
  7939.  If E>0
  7940.   S=DREZIONE mod $10000
  7941.   Print "edificio";E;" stanza";S
  7942.  Else 
  7943.   DREZIONE=DREZIONE mod $10000
  7944.   If DREZIONE<$FFFF
  7945.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7946.   Else 
  7947.    Print "nessun luogo"
  7948.   End If 
  7949.  End If 
  7950.  DREZIONE=DREZIONEL(4,LUOGO)
  7951.  Print "Direzione Sud      >";
  7952.  E=DREZIONE/$10000
  7953.  If E>0
  7954.   S=DREZIONE mod $10000
  7955.   Print "edificio";E;" stanza";S
  7956.  Else 
  7957.   DREZIONE=DREZIONE mod $10000
  7958.   If DREZIONE<$FFFF
  7959.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7960.   Else 
  7961.    Print "nessun luogo"
  7962.   End If 
  7963.  End If 
  7964.  DREZIONE=DREZIONEL(5,LUOGO)
  7965.  Print "Direzione SudOvest >";
  7966.  E=DREZIONE/$10000
  7967.  If E>0
  7968.   S=DREZIONE mod $10000
  7969.   Print "edificio";E;" stanza";S
  7970.  Else 
  7971.   DREZIONE=DREZIONE mod $10000
  7972.   If DREZIONE<$FFFF
  7973.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7974.   Else 
  7975.    Print "nessun luogo"
  7976.   End If 
  7977.  End If 
  7978.  DREZIONE=DREZIONEL(6,LUOGO)
  7979.  Print "Direzione Ovest    >";
  7980.  E=DREZIONE/$10000
  7981.  If E>0
  7982.   S=DREZIONE mod $10000
  7983.   Print "edificio";E;" stanza";S
  7984.  Else 
  7985.   DREZIONE=DREZIONE mod $10000
  7986.   If DREZIONE<$FFFF
  7987.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  7988.   Else 
  7989.    Print "nessun luogo"
  7990.   End If 
  7991.  End If 
  7992.  DREZIONE=DREZIONEL(7,LUOGO)
  7993.  Print "Direzione NordOvest>";
  7994.  E=DREZIONE/$10000
  7995.  If E>0
  7996.   S=DREZIONE mod $10000
  7997.   Print "edificio";E;" stanza";S
  7998.  Else 
  7999.   DREZIONE=DREZIONE mod $10000
  8000.   If DREZIONE<$FFFF
  8001.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8002.   Else 
  8003.    Print "nessun luogo"
  8004.   End If 
  8005.  End If 
  8006.  DREZIONE=DREZIONEL(8,LUOGO)
  8007.  Print "Direzione Sopra    >";
  8008.  E=DREZIONE/$10000
  8009.  If E>0
  8010.   S=DREZIONE mod $10000
  8011.   Print "edificio";E;" stanza";S
  8012.  Else 
  8013.   DREZIONE=DREZIONE mod $10000
  8014.   If DREZIONE<$FFFF
  8015.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8016.   Else 
  8017.    Print "nessun luogo"
  8018.   End If 
  8019.  End If 
  8020.  DREZIONE=DREZIONEL(9,LUOGO)
  8021.  Print "Direzione Sotto    >";
  8022.  E=DREZIONE/$10000
  8023.  If E>0
  8024.   S=DREZIONE mod $10000
  8025.   Print "edificio";E;" stanza";S
  8026.  Else 
  8027.   DREZIONE=DREZIONE mod $10000
  8028.   If DREZIONE<$FFFF
  8029.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8030.   Else 
  8031.    Print "nessun luogo"
  8032.   End If 
  8033.  End If 
  8034.  SOLDINELLUOGO=SOLDIL(LUOGO)
  8035.  If SOLDINELLUOGO>0
  8036.   Print Str$(SOLDINELLUOGO)-" ";" ";
  8037.   If SOLDINELLUOGO=1
  8038.    Print "soldo"
  8039.   Else 
  8040.    Print "soldi"
  8041.   End If 
  8042.  End If 
  8043. End Proc
  8044. Procedure MOSTRAMESSAGGIO[MESSAGGIO4$,MESSAGGIO5$]
  8045.  Cls 
  8046.  Proc TIC[MESSAGGIO4$,0] : Print : POSIZIONE=1
  8047.  Repeat 
  8048.   SPAZIO=Instr(MESSAGGIO5$," ",POSIZIONE)
  8049.   If SPAZIO>0
  8050.    If X Curs+SPAZIO-POSIZIONE>79
  8051.     Print : X=0
  8052.     Proc FONDOSCHERMOGIOCO
  8053.    End If 
  8054.    Print Mid$(MESSAGGIO5$,POSIZIONE,SPAZIO-POSIZIONE+1);
  8055.    POSIZIONE=SPAZIO+1
  8056.   Else 
  8057.    Print Mid$(MESSAGGIO5$,POSIZIONE,Len(MESSAGGIO5$)-POSIZIONE+1)
  8058.   End If 
  8059.  Until SPAZIO=0
  8060.  If X Curs>0 or Y Curs>0
  8061.   Proc TIC["Premi un tasto...",ULTIMALINEA] : Wait Key 
  8062.  End If 
  8063. End Proc
  8064. Procedure MOSTRAOGGETTO
  8065.  Cls 
  8066.  If M0DIFICA=False
  8067.   Proc TIC[MESSAGGIO3$,0] : Print 
  8068.  End If 
  8069.  Print "Oggetto";OGGETTO;":"
  8070.  Print "Nome>";
  8071.  If Btst(1,TIPOO(OGGETTO))=True
  8072.   Print NOMESRO$(CATEGORIAO(OGGETTO))
  8073.  Else 
  8074.   Print NOMESCO$(CATEGORIAO(OGGETTO))
  8075.  End If 
  8076.  Print "Posizione>";
  8077.  If POSIZIONEO(OGGETTO)<0
  8078.   SOGGETTO= Not POSIZIONEO(OGGETTO)
  8079.   If Btst(0,TIPOO(OGGETTO))=True
  8080.    Print "posseduto dal personaggio";SOGGETTO;
  8081.    Print " nome>";NOMEP$(SOGGETTO)
  8082.   Else 
  8083.    Print "contenuto nell'oggetto";SOGGETTO;
  8084.    Print " nome>";
  8085.    If Btst(1,TIPOO(SOGGETTO))=True
  8086.     Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8087.    Else 
  8088.     Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8089.    End If 
  8090.   End If 
  8091.  Else 
  8092.   Print "luogo";POSIZIONEO(OGGETTO);" nome>";NOMEL$(POSIZIONEO(OGGETTO))
  8093.  End If 
  8094.  If Btst(1,TIPOO(OGGETTO))=True
  8095.   PESOOGGETTO=PESORESTOCO(CATEGORIAO(OGGETTO))
  8096.  Else 
  8097.   PESOOGGETTO=PESOCO(CATEGORIAO(OGGETTO))
  8098.  End If 
  8099.  Print "Peso>";Str$(PESOOGGETTO)-" ";" ";
  8100.  If PESOOGGETTO=1
  8101.   Print "grammo"
  8102.  Else 
  8103.   Print "grammi"
  8104.  End If 
  8105.  If Btst(3,TIPOO(OGGETTO))=True
  8106.   Print "Nascosto"
  8107.  End If 
  8108.  If Btst(1,TIPOO(OGGETTO))=True
  8109.   Print "Resto"
  8110.  End If 
  8111.  If Btst(2,TIPOO(OGGETTO))=True
  8112.   Print "Indossato dal personaggio";SOGGETTO;" nome>";NOMEP$(SOGGETTO)
  8113.  End If 
  8114. End Proc
  8115. Procedure MOSTRAOGGETTOPERINSERIMENTO[P]
  8116.  Repeat 
  8117.   Cls 
  8118.   Print "Nome del personaggio";P;">";NOMEP$(P)
  8119.   Print At(0,ULTIMALINEA-1);"Oggetto";CATEGORIA;">";NOMESCO$(CATEGORIA)
  8120.   Proc TIC[Chr$(147)+Chr$(148)+" "+Chr$(149)+Chr$(150)+" scegli l'oggetto Spazio conferma",ULTIMALINEA]
  8121.   Repeat 
  8122.    TASTOPREMUTO$=Inkey$
  8123.   Until TASTOPREMUTO$<>""
  8124.   If TASTOPREMUTO$=Cup$ Then Add CATEGORIA,-1,0 To NUMEROCO
  8125.   If TASTOPREMUTO$=Cdown$ Then Add CATEGORIA,1,0 To NUMEROCO
  8126.  Until TASTOPREMUTO$=" "
  8127. End Proc[CATEGORIA]
  8128. Procedure MOSTRAPERSONAGGIO
  8129.  Cls 
  8130.  If M0DIFICA=False
  8131.   Proc TIC[MESSAGGIO3$,0] : Print 
  8132.  End If 
  8133.  Print "Personaggio";PERSONAGGIO;
  8134.  If PERSONAGGIO=0
  8135.   Print " (personaggio del giocatore):"
  8136.  Else 
  8137.   Print ":"
  8138.  End If 
  8139.  Print "Nome>";NOMEP$(PERSONAGGIO)
  8140.  Print "Posizione>";
  8141.  If POSIZIONEP(PERSONAGGIO)<0
  8142.   SOGGETTO=-1-POSIZIONEP(PERSONAGGIO)
  8143.   If Btst(0,TIPOP(PERSONAGGIO))=True
  8144.    Print "trasportato dal personaggio";SOGGETTO;
  8145.    Print " nome>";NOMEP$(SOGGETTO)
  8146.   Else 
  8147.    Print "contenuto nell'oggetto";SOGGETTO;" nome>";
  8148.    If Btst(1,TIPOO(SOGGETTO))=True
  8149.     Print NOMESRO$(CATEGORIAO(SOGGETTO))
  8150.    Else 
  8151.     Print NOMESCO$(CATEGORIAO(SOGGETTO))
  8152.    End If 
  8153.   End If 
  8154.  Else 
  8155.   If TEMP0DIATTRAVERSAMENTOP(PERSONAGGIO)>0
  8156.    Print "In cammino dal luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8157.    Print " al luogo";LUOGODIDESTINAZIONEP(PERSONAGGIO);" nome>";NOMEL$(LUOGODIDESTINAZIONEP(PERSONAGGIO))
  8158.   Else 
  8159.    E=POSIZIONEP(PERSONAGGIO)/$10000
  8160.    If E>0
  8161.     Print "Edificio";E-1;" nome>";NOMEE$(E-1)
  8162.     S=POSIZIONEP(PERSONAGGIO) mod $10000
  8163.     Print "Stanza";S;" nome>";NOMES$(S,E-1)
  8164.    Else 
  8165.     Print "luogo";POSIZIONEP(PERSONAGGIO);" nome>";NOMEL$(POSIZIONEP(PERSONAGGIO))
  8166.    End If 
  8167.   End If 
  8168.  End If 
  8169.  Print "Costituzione>";Str$(C0STITUZIONEP(PERSONAGGIO))-" ";" ";
  8170.  If C0STITUZIONEP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8171.  Print "Destrezza>";Str$(DESTREZZAP(PERSONAGGIO))-" ";" ";
  8172.  If DESTREZZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8173.  Print "Forza>";Str$(F0RZAP(PERSONAGGIO))-" ";" ";
  8174.  If F0RZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8175.  PESODELPERSONAGGIO=PESOP(PERSONAGGIO)+PESONETTOP(PERSONAGGIO)/1000
  8176.  Print "Peso>";Str$(PESODELPERSONAGGIO)-" ";" ";
  8177.  If PESODELPERSONAGGIO=1 Then Print "chilo" Else Print "chili"
  8178.  Print "Peso netto>";
  8179.  If PESONETTOP(PERSONAGGIO)>999
  8180.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO)/1000
  8181.   Print Str$(PESOOEPDELP0)-" ";" ";
  8182.   If PESOOEPDELP0=1
  8183.    Print "chilo";
  8184.   Else 
  8185.    Print "chili";
  8186.   End If 
  8187.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO) mod 1000
  8188.   If PESOOEPDELP0>0
  8189.    Print " e";PESOOEPDELP0;" ";
  8190.    If PESOOEPDELP0=1
  8191.     Print "grammo"
  8192.    Else 
  8193.     Print "grammi"
  8194.    End If 
  8195.   Else 
  8196.    Print 
  8197.   End If 
  8198.  Else 
  8199.   PESOOEPDELP0=PESONETTOP(PERSONAGGIO)
  8200.   Print Str$(PESOOEPDELP0)-" ";" ";
  8201.   If PESOOEPDELP0=1
  8202.    Print "grammo"
  8203.   Else 
  8204.    Print "grammi"
  8205.   End If 
  8206.  End If 
  8207.  Print "Resistenza>";Str$(RESISTENZAP(PERSONAGGIO))-" ";" ";
  8208.  If RESISTENZAP(PERSONAGGIO)=1 Then Print "punto" Else Print "punti"
  8209.  Print "Sesso>";
  8210.  If Btst(1,TIPOP(PERSONAGGIO))=True Then Print "Femminile" Else Print "Maschile"
  8211.  If PERSONAGGIO>0
  8212.   Print "Condizione>";
  8213.   If Btst(3,TIPOP(PERSONAGGIO))=True
  8214.    Print "Nemic";
  8215.   Else 
  8216.    Print "Amic";
  8217.   End If 
  8218.   If Btst(1,TIPOP(PERSONAGGIO))=True
  8219.    Print "a"
  8220.   Else 
  8221.    Print "o"
  8222.   End If 
  8223.  End If 
  8224.  Print "Soldi>";Str$(SOLDIP(PERSONAGGIO))-" ";" ";
  8225.  If SOLDIP(PERSONAGGIO)=1 Then Print "soldo" Else Print "soldi"
  8226.  If PERSONAGGIO>0
  8227.   Print "Inizio sonno>";
  8228.   _ORE=INIZIOSONNOP(PERSONAGGIO)/60 mod 24
  8229.   Print Using "#";_ORE/10; Using "#";_ORE mod 10;
  8230.   M1NUTI=INIZIOSONNOP(PERSONAGGIO) mod 60
  8231.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  8232.   Print "Durata sonno>";Str$(SONNOP(PERSONAGGIO))-" ";" ";
  8233.   If SONNOP(PERSONAGGIO)=1
  8234.    Print "minuto"
  8235.   Else 
  8236.    Print "minuti"
  8237.   End If 
  8238.   For A=0 To 7
  8239.    AZIONE=AZIONEP(A,PERSONAGGIO)
  8240.    PARA=PARAAAZIONEP(A,PERSONAGGIO)
  8241.    PARB=PARABAZIONEP(A,PERSONAGGIO)
  8242.    PARC=PARACAZIONEP(A,PERSONAGGIO)
  8243.    Cline : Print : Cline : Cmove ,-1
  8244.    Print "azione";A+1;">";
  8245.    Proc MOSTRAAZIONEDEGLIALTRIP[AZIONE,PARA,PARB,PARC]
  8246.    Proc FONDOSCHERMOEDITOR
  8247.   Next A
  8248.  End If 
  8249.  If Btst(2,TIPOP(PERSONAGGIO))=True
  8250.   Print "Sta dormendo"
  8251.  End If 
  8252. End Proc
  8253. Procedure MOSTRAREGIONE
  8254.  Cls 
  8255.  If M0DIFICA=False
  8256.   Proc TIC[MESSAGGIO3$,0] : Print 
  8257.  End If 
  8258.  Print "Regione";REGIONE;":"
  8259.  Print "Nome>";NOMER$(REGIONE)
  8260. End Proc
  8261. Procedure MOSTRASTANZA
  8262.  Cls 
  8263.  If M0DIFICA=False
  8264.   Proc TIC[MESSAGGIO3$,0] : Print 
  8265.  End If 
  8266.  Print "Edificio";EDIFICIO;":"
  8267.  Print "Stanza";STANZA;":"
  8268.  Print "Nome>";NOMES$(STANZA,EDIFICIO)
  8269.  DREZIONE=DREZIONES(0,STANZA,EDIFICIO)
  8270.  Print "Direzione Nord     >";
  8271.  E=DREZIONE/$10000
  8272.  If E>0
  8273.   S=DREZIONE mod $10000
  8274.   Print "edificio";E;" stanza";S
  8275.  Else 
  8276.   DREZIONE=DREZIONE mod $10000
  8277.   If DREZIONE<$FFFF
  8278.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8279.   Else 
  8280.    Print "nessun luogo"
  8281.   End If 
  8282.  End If 
  8283.  DREZIONE=DREZIONES(1,STANZA,EDIFICIO)
  8284.  Print "Direzione NordEst  >";
  8285.  E=DREZIONE/$10000
  8286.  If E>0
  8287.   S=DREZIONE mod $10000
  8288.   Print "edificio";E;" stanza";S
  8289.  Else 
  8290.   DREZIONE=DREZIONE mod $10000
  8291.   If DREZIONE<$FFFF
  8292.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8293.   Else 
  8294.    Print "nessun luogo"
  8295.   End If 
  8296.  End If 
  8297.  DREZIONE=DREZIONES(2,STANZA,EDIFICIO)
  8298.  Print "Direzione Est      >";
  8299.  E=DREZIONE/$10000
  8300.  If E>0
  8301.   S=DREZIONE mod $10000
  8302.   Print "edificio";E;" stanza";S
  8303.  Else 
  8304.   DREZIONE=DREZIONE mod $10000
  8305.   If DREZIONE<$FFFF
  8306.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8307.   Else 
  8308.    Print "nessun luogo"
  8309.   End If 
  8310.  End If 
  8311.  DREZIONE=DREZIONES(3,STANZA,EDIFICIO)
  8312.  Print "Direzione SudEst   >";
  8313.  E=DREZIONE/$10000
  8314.  If E>0
  8315.   S=DREZIONE mod $10000
  8316.   Print "edificio";E;" stanza";S
  8317.  Else 
  8318.   DREZIONE=DREZIONE mod $10000
  8319.   If DREZIONE<$FFFF
  8320.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8321.   Else 
  8322.    Print "nessun luogo"
  8323.   End If 
  8324.  End If 
  8325.  DREZIONE=DREZIONES(4,STANZA,EDIFICIO)
  8326.  Print "Direzione Sud      >";
  8327.  E=DREZIONE/$10000
  8328.  If E>0
  8329.   S=DREZIONE mod $10000
  8330.   Print "edificio";E;" stanza";S
  8331.  Else 
  8332.   DREZIONE=DREZIONE mod $10000
  8333.   If DREZIONE<$FFFF
  8334.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8335.   Else 
  8336.    Print "nessun luogo"
  8337.   End If 
  8338.  End If 
  8339.  DREZIONE=DREZIONES(5,STANZA,EDIFICIO)
  8340.  Print "Direzione SudOvest >";
  8341.  E=DREZIONE/$10000
  8342.  If E>0
  8343.   S=DREZIONE mod $10000
  8344.   Print "edificio";E;" stanza";S
  8345.  Else 
  8346.   DREZIONE=DREZIONE mod $10000
  8347.   If DREZIONE<$FFFF
  8348.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8349.   Else 
  8350.    Print "nessun luogo"
  8351.   End If 
  8352.  End If 
  8353.  DREZIONE=DREZIONES(6,STANZA,EDIFICIO)
  8354.  Print "Direzione Ovest    >";
  8355.  E=DREZIONE/$10000
  8356.  If E>0
  8357.   S=DREZIONE mod $10000
  8358.   Print "edificio";E;" stanza";S
  8359.  Else 
  8360.   DREZIONE=DREZIONE mod $10000
  8361.   If DREZIONE<$FFFF
  8362.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8363.   Else 
  8364.    Print "nessun luogo"
  8365.   End If 
  8366.  End If 
  8367.  DREZIONE=DREZIONES(7,STANZA,EDIFICIO)
  8368.  Print "Direzione NordOvest>";
  8369.  E=DREZIONE/$10000
  8370.  If E>0
  8371.   S=DREZIONE mod $10000
  8372.   Print "edificio";E;" stanza";S
  8373.  Else 
  8374.   DREZIONE=DREZIONE mod $10000
  8375.   If DREZIONE<$FFFF
  8376.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8377.   Else 
  8378.    Print "nessun luogo"
  8379.   End If 
  8380.  End If 
  8381.  DREZIONE=DREZIONES(8,STANZA,EDIFICIO)
  8382.  Print "Direzione Sopra    >";
  8383.  E=DREZIONE/$10000
  8384.  If E>0
  8385.   S=DREZIONE mod $10000
  8386.   Print "edificio";E;" stanza";S
  8387.  Else 
  8388.   DREZIONE=DREZIONE mod $10000
  8389.   If DREZIONE<$FFFF
  8390.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8391.   Else 
  8392.    Print "nessun luogo"
  8393.   End If 
  8394.  End If 
  8395.  DREZIONE=DREZIONES(9,STANZA,EDIFICIO)
  8396.  Print "Direzione Sotto    >";
  8397.  E=DREZIONE/$10000
  8398.  If E>0
  8399.   S=DREZIONE mod $10000
  8400.   Print "edificio";E;" stanza";S
  8401.  Else 
  8402.   DREZIONE=DREZIONE mod $10000
  8403.   If DREZIONE<$FFFF
  8404.    Print "luogo";DREZIONE;" nome>";NOMEL$(DREZIONE)
  8405.   Else 
  8406.    Print "nessun luogo"
  8407.   End If 
  8408.  End If 
  8409.  SOLDINELLASTANZA=SOLDIS(STANZA,EDIFICIO)
  8410.  If SOLDINELLASTANZA>0
  8411.   Print Str$(SOLDINELLASTANZA)-" ";" ";
  8412.   If SOLDINELLASTANZA=1
  8413.    Print "soldo"
  8414.   Else 
  8415.    Print "soldi"
  8416.   End If 
  8417.  End If 
  8418. End Proc
  8419. Procedure MUOVITI
  8420.  If F0RZAP(0)+PESOP(0)/10>=PESONETTOP(0)/1000
  8421.   EDIFICIODOVESITROVAILPERSONAGGIO0=POSIZIONEP(0)/$10000
  8422.   If TEMP0DIATTRAVERSAMENTOP(0)=0 or EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8423.    Locate 0,ULTIMALINEA : Input "Dove vuoi andare ?>";DREZIONE$; : Curs Off 
  8424.    DREZIONE$=Lower$(DREZIONE$)
  8425.    If DREZIONE$<>""
  8426.     For A=0 To 9
  8427.      If DREZIONE$=Lower$(DREZIONEL$(A)) or DREZIONE$=Lower$(DREZIONE$(A))
  8428.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8429.        S=POSIZIONEP(0) mod $10000
  8430.        If DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0) mod $10000<$FFFF
  8431.         E=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)/$10000
  8432.         Exit 
  8433.        Else 
  8434.         DREZIONE$=Lower$(DREZIONE$(A))
  8435.        End If 
  8436.       Else 
  8437.        If DREZIONEL(A,POSIZIONEP(0)) mod $10000<$FFFF
  8438.         E=DREZIONEL(A,POSIZIONEP(0))/$10000
  8439.         Exit 
  8440.        Else 
  8441.         DREZIONE$=Lower$(DREZIONE$(A))
  8442.        End If 
  8443.       End If 
  8444.      End If 
  8445.     Next A
  8446.     If A<10
  8447.      If E>0
  8448.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8449.        POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8450.       Else 
  8451.        POSIZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8452.       End If 
  8453.      Else 
  8454.       If EDIFICIODOVESITROVAILPERSONAGGIO0>0
  8455.        POSIZIONEP(0)=DREZIONES(A,S,EDIFICIODOVESITROVAILPERSONAGGIO0)
  8456.       Else 
  8457.        LUOGODIDESTINAZIONEP(0)=DREZIONEL(A,POSIZIONEP(0))
  8458.        CAMMINOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))
  8459.        If CAMMINOP(0)=0
  8460.         POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8461.         DREZIONEPRESAP(0)=-1
  8462.         DREZIONEOPPOSTAAQUELLAPRESAP(0)=-1
  8463.        Else 
  8464.         TEMP0DIATTRAVERSAMENTOP(0)=CAMMINOP(0)
  8465.         DREZIONEPRESAP(0)=A
  8466.         If DREZIONEPRESAP(0)=9
  8467.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=8
  8468.         Else If DREZIONEPRESAP(0)=8
  8469.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=9
  8470.         Else If DREZIONEPRESAP(0)<8 and DREZIONEPRESAP(0)>3
  8471.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)-4
  8472.         Else 
  8473.          DREZIONEOPPOSTAAQUELLAPRESAP(0)=DREZIONEPRESAP(0)+4
  8474.         End If 
  8475.        End If 
  8476.       End If 
  8477.      End If 
  8478.      COMPIUTAAZIONE=1
  8479.      Print At(0,ULTIMALINEA);"Hai deciso di andare ";
  8480.      If A>7
  8481.       Print Lower$(DREZIONE$(A));
  8482.      Else 
  8483.       Print "a ";Lower$(DREZIONE$(A));
  8484.      End If 
  8485.     Else 
  8486.      A=False
  8487.      For B=0 To 9
  8488.       If DREZIONE$=Lower$(DREZIONEL$(B)) or DREZIONE$=Lower$(DREZIONE$(B))
  8489.        A=True
  8490.       End If 
  8491.      Next B
  8492.      If A=True
  8493.       Print At(0,ULTIMALINEA);"Non puoi andare ";
  8494.       If DREZIONE$="sopra" or DREZIONE$="sotto"
  8495.        Print DREZIONE$;
  8496.       Else 
  8497.        Print "a ";DREZIONE$;
  8498.       End If 
  8499.       Print " ";
  8500.       If _MUSICA=False
  8501.        Bell 1
  8502.       End If 
  8503.      Else 
  8504.       Print At(0,ULTIMALINEA);"Non so cosa sia ";DREZIONE$;"   ";
  8505.       If _MUSICA=False
  8506.        Bell 1
  8507.       End If 
  8508.      End If 
  8509.     End If 
  8510.     Proc _ASPETTA
  8511.    End If 
  8512.   Else 
  8513.    Print At(0,ULTIMALINEA);"Vuoi andare avanti (a) o tornare indietro (i) ?";
  8514.    SCELTA$=Input$(1) : SCELTA$=Lower$(SCELTA$)
  8515.    If SCELTA$="a"
  8516.     Dec TEMP0DIATTRAVERSAMENTOP(0)
  8517.     If TEMP0DIATTRAVERSAMENTOP(0)=0
  8518.      POSIZIONEP(0)=LUOGODIDESTINAZIONEP(0)
  8519.      DREZIONEPRESAP(0)=-1
  8520.      Locate 0,ULTIMALINEA : Cline : Print "Sei arrivato a ";NOMEL$(POSIZIONEP(0));
  8521.     Else 
  8522.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di andare avanti";
  8523.     End If 
  8524.     COMPIUTAAZIONE=1 : Proc _ASPETTA
  8525.    Else If SCELTA$="i"
  8526.     Inc TEMP0DIATTRAVERSAMENTOP(0)
  8527.     If TEMP0DIATTRAVERSAMENTOP(0)=PARATIPOL(TIPOL(POSIZIONEP(0)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(0)))+1
  8528.      Locate 0,ULTIMALINEA : Cline : Print "Sei tornato a ";NOMEL$(POSIZIONEP(0));
  8529.      TEMP0DIATTRAVERSAMENTOP(0)=0
  8530.     Else 
  8531.      Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di tornare indietro";
  8532.     End If 
  8533.     COMPIUTAAZIONE=1 : Proc _ASPETTA
  8534.    End If 
  8535.   End If 
  8536.  Else 
  8537.   Print At(0,ULTIMALINEA);"Sei troppo pesante, non puoi muoverti";
  8538.   If _MUSICA=False
  8539.    Bell 1
  8540.   End If 
  8541.   Proc _ASPETTA
  8542.  End If 
  8543. End Proc
  8544. Procedure MUOVITIP[AZIONE,P]
  8545.  If PERSONAGGIOVISIBILEP(P)=True Then PERSONAGGIOVISIBILE=True
  8546.  If Btst(2,TIPOP(0))=False Then PERSONAGGIO0SVEGLIO=True
  8547.  If F0RZAP(P)+PESOP(P)/10>=PESONETTOP(P)/1000
  8548.   EDIFICIODOVESITROVAILPERSONAGGIOP=POSIZIONEP(P)/$10000
  8549.   If TEMP0DIATTRAVERSAMENTOP(P)=0 or EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8550.    Do 
  8551.     DREZIONE=Rnd(9)
  8552.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8553.      S=POSIZIONEP(P) mod $10000
  8554.      E=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)/$10000
  8555.      Exit If DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP) mod $10000<$FFFF
  8556.     Else 
  8557.      E=DREZIONEL(DREZIONE,POSIZIONEP(P))/$10000
  8558.      Exit If DREZIONEL(DREZIONE,POSIZIONEP(P)) mod $10000<$FFFF
  8559.     End If 
  8560.    Loop 
  8561.    If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  8562.     Print NOMEP$(P);" sta andando ";
  8563.     If DREZIONE>7
  8564.      Print Lower$(DREZIONE$(DREZIONE))
  8565.     Else 
  8566.      Print "a ";Lower$(DREZIONE$(DREZIONE))
  8567.     End If 
  8568.     Proc FONDOSCHERMOGIOCO
  8569.    End If 
  8570.    If E>0
  8571.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8572.      POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8573.     Else 
  8574.      POSIZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8575.     End If 
  8576.     Proc PERSONAGGIOVISIBILE[P]
  8577.     If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8578.      Print NOMEP$(P);" ï¿½ arrivato"
  8579.     End If 
  8580.    Else 
  8581.     If EDIFICIODOVESITROVAILPERSONAGGIOP>0
  8582.      POSIZIONEP(P)=DREZIONES(DREZIONE,S,EDIFICIODOVESITROVAILPERSONAGGIOP)
  8583.     Else 
  8584.      LUOGODIDESTINAZIONEP(P)=DREZIONEL(DREZIONE,POSIZIONEP(P))
  8585.      CAMMINOP(P)=PARATIPOL(TIPOL(POSIZIONEP(P)))+PARATIPOL(TIPOL(LUOGODIDESTINAZIONEP(P)))
  8586.      If CAMMINOP(P)=0
  8587.       POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8588.       DREZIONEPRESAP(P)=-1
  8589.       DREZIONEOPPOSTAAQUELLAPRESAP(P)=-1
  8590.      Else 
  8591.       TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)
  8592.       DREZIONEPRESAP(P)=DREZIONE
  8593.       If DREZIONEPRESAP(P)=9
  8594.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=8
  8595.       Else If DREZIONEPRESAP(P)=8
  8596.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=9
  8597.       Else If DREZIONEPRESAP(P)<8 and DREZIONEPRESAP(P)>3
  8598.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)-4
  8599.       Else 
  8600.        DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(P)+4
  8601.       End If 
  8602.      End If 
  8603.     End If 
  8604.     Proc PERSONAGGIOVISIBILE[P]
  8605.     If PERSONAGGIOVISIBILE=False and PERSONAGGIOVISIBILEP(P)=True and PERSONAGGIO0SVEGLIO=True
  8606.      Print NOMEP$(P);" ï¿½ arrivato"
  8607.     End If 
  8608.    End If 
  8609.   Else 
  8610.    'Fare DREZIONE=Rnd(1) per far muovere avanti o indietro i personaggi 
  8611.    DREZIONE=1
  8612.    If DREZIONE=1
  8613.     Dec TEMP0DIATTRAVERSAMENTOP(P)
  8614.     If TEMP0DIATTRAVERSAMENTOP(P)=0
  8615.      POSIZIONEP(P)=LUOGODIDESTINAZIONEP(P)
  8616.      DREZIONEPRESAP(P)=-1
  8617.      If PERSONAGGIO0SVEGLIO=True
  8618.       If PERSONAGGIOVISIBILE=True
  8619.        Print NOMEP$(P);" sta andando avanti"
  8620.        Proc FONDOSCHERMOGIOCO
  8621.       Else 
  8622.        Proc PERSONAGGIOVISIBILE[P]
  8623.        If PERSONAGGIOVISIBILEP(P)=True
  8624.         Print NOMEP$(P);" ï¿½ arrivato"
  8625.        End If 
  8626.        Proc FONDOSCHERMOGIOCO
  8627.       End If 
  8628.      End If 
  8629.     Else 
  8630.      If PERSONAGGIO0SVEGLIO=True
  8631.       If PERSONAGGIOVISIBILE=True
  8632.        Print NOMEP$(P);" sta andando avanti"
  8633.        Proc FONDOSCHERMOGIOCO
  8634.       Else 
  8635.        Proc PERSONAGGIOVISIBILE[P]
  8636.        If PERSONAGGIOVISIBILEP(P)=True
  8637.         Print NOMEP$(P);" ï¿½ arrivato"
  8638.        End If 
  8639.        Proc FONDOSCHERMOGIOCO
  8640.       End If 
  8641.      End If 
  8642.     End If 
  8643.    Else 
  8644.     Inc TEMP0DIATTRAVERSAMENTOP(P)
  8645.     If TEMP0DIATTRAVERSAMENTOP(P)=CAMMINOP(P)+1
  8646.      TEMP0DIATTRAVERSAMENTOP(0)=0
  8647.      DREZIONEPRESAP(P)=-1
  8648.      If PERSONAGGIO0SVEGLIO=True
  8649.       If PERSONAGGIOVISIBILE=True
  8650.        Print NOMEP$(P);" sta tornando indietro"
  8651.        Proc FONDOSCHERMOGIOCO
  8652.       Else 
  8653.        Proc PERSONAGGIOVISIBILE[P]
  8654.        If PERSONAGGIOVISIBILEP(P)=True
  8655.         Print NOMEP$(P);" ï¿½ arrivato"
  8656.        End If 
  8657.        Proc FONDOSCHERMOGIOCO
  8658.       End If 
  8659.      End If 
  8660.     Else 
  8661.      If PERSONAGGIO0SVEGLIO=True
  8662.       If PERSONAGGIOVISIBILE=True
  8663.        Print NOMEP$(P);" sta tornando indietro"
  8664.        Proc FONDOSCHERMOGIOCO
  8665.       Else 
  8666.        Proc PERSONAGGIOVISIBILE[P]
  8667.        If PERSONAGGIOVISIBILEP(P)=True
  8668.         Print NOMEP$(P);" ï¿½ arrivato"
  8669.        End If 
  8670.        Proc FONDOSCHERMOGIOCO
  8671.       End If 
  8672.      End If 
  8673.     End If 
  8674.    End If 
  8675.   End If 
  8676.  Else 
  8677.   If PERSONAGGIOVISIBILE=True
  8678.    Print NOMEP$(P);" ï¿½ troppo pesante, non pu� muoversi"
  8679.    Proc FONDOSCHERMOGIOCO
  8680.   End If 
  8681.  End If 
  8682. End Proc
  8683. Procedure NEMICI[P]
  8684.  DIFESA=-1
  8685.  For A=0 To NUMEROO
  8686.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  8687.    If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  8688.     DIFESA=CATEGORIAO(A) : VLOREDIFESA=PARATIPOCO(DIFESA)
  8689.     Exit 
  8690.    End If 
  8691.   End If 
  8692.  Next A
  8693.  OGGETTOOFFENSIVO=-1
  8694.  For A=0 To NUMEROO
  8695.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and Btst(6,TIPOCO(CATEGORIAO(A)))=True
  8696.    VLORE1OFFENSIVITA=PARATIPOCO(CATEGORIAO(A))
  8697.    If VLORE1OFFENSIVITA>VLORE0OFFENSIVITA
  8698.     OGGETTOOFFENSIVO=CATEGORIAO(A) : VLORE0OFFENSIVITA=VLORE1OFFENSIVITA
  8699.    End If 
  8700.   End If 
  8701.  Next A
  8702.  NEMICI=Min(10,Rnd(TEMP0TRASCORSO/1440)+1)
  8703.  NOMENEMICI=Rnd(27)
  8704.  If P=0 Then Cls 
  8705.  Gosub NEMICI
  8706.  Gosub SCELTASUINEMICI
  8707.  Inc DESTREZZAP(P)
  8708.  Pop Proc
  8709.  COMBATTIMENTOCONINEMICI:
  8710.  NUMEROCOMBATTIMENTO=1
  8711.  Repeat 
  8712.   If P=0
  8713.    Cls 
  8714.    Proc TIC["********** Combattimento numero"+Str$(NUMEROCOMBATTIMENTO)+" **********",0]
  8715.    Print 
  8716.   End If 
  8717.   Gosub TURNODEINEMICI
  8718.   If OGGETTOOFFENSIVO>-1
  8719.    OFFENSIVITA=PARATIPOCO(OGGETTOOFFENSIVO)*5
  8720.   End If 
  8721.   Add OFFENSIVITA,DESTREZZAP(P)
  8722.   Add OFFENSIVITA,F0RZAP(P)
  8723.   OFFENSIVITA=OFFENSIVITA/100
  8724.   Proc LIMITI[OFFENSIVITA,1,NEMICI] : OFFENSIVITA=Param
  8725.   If P=0
  8726.    Print "Hai ucciso";OFFENSIVITA;" ";
  8727.    If OFFENSIVITA=1
  8728.     Print NOMESN$(NOMENEMICI);
  8729.    Else 
  8730.     Print NOMEPN$(NOMENEMICI);
  8731.    End If 
  8732.    Print " ";
  8733.    If OGGETTOOFFENSIVO>-1
  8734.     Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8735.    Else 
  8736.     Print "a mani nude";
  8737.    End If 
  8738.    Print "."
  8739.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8740.    Add NEMICI,-OFFENSIVITA
  8741.    If NEMICI=0
  8742.     Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8743.    Else 
  8744.     Gosub SCELTADOPOILCOMBATTIMENTO
  8745.     Inc NUMEROCOMBATTIMENTO
  8746.    End If 
  8747.   Else 
  8748.    If PERSONAGGIOVISIBILEP(P)=True
  8749.     Print NOMEP$(P);" ha ucciso";OFFENSIVITA;" ";
  8750.     If OFFENSIVITA=1
  8751.      Print NOMESN$(NOMENEMICI);
  8752.     Else 
  8753.      Print NOMEPN$(NOMENEMICI);
  8754.     End If 
  8755.     Print " ";
  8756.     If OGGETTOOFFENSIVO>-1
  8757.      Print "usando 1 ";NOMESCO$(OGGETTOOFFENSIVO);
  8758.     Else 
  8759.      Print "a mani nude";
  8760.     End If 
  8761.     Print "."
  8762.     Proc FONDOSCHERMOGIOCO
  8763.    End If 
  8764.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8765.    Add NEMICI,-OFFENSIVITA
  8766.    If NEMICI>0
  8767.     Gosub SCELTADOPOILCOMBATTIMENTO
  8768.     Inc NUMEROCOMBATTIMENTO
  8769.    End If 
  8770.   End If 
  8771.  Until NEMICI=0
  8772.  Return 
  8773.  NEMICI:
  8774.  If P=0
  8775.   If INEMICITISVEGLIANO=True
  8776.    If NEMICI=1
  8777.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ha";
  8778.    Else 
  8779.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti hanno";
  8780.    End If 
  8781.    Print " svegliato."
  8782.   Else 
  8783.    If NEMICI=1
  8784.     Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ti ostacola";
  8785.    Else 
  8786.     Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che ti ostacolano";
  8787.    End If 
  8788.    Print " il cammino."
  8789.   End If 
  8790.  Else 
  8791.   If PERSONAGGIOVISIBILEP(P)=True
  8792.    If INEMICISVEGLIANOPERSONAGGIOP=True
  8793.     If NEMICI=1
  8794.      Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ha svegliato ";NOMEP$(P)
  8795.     Else 
  8796.      Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" che hanno svegliato ";NOMEP$(P)
  8797.     End If 
  8798.    Else 
  8799.     If NEMICI=1
  8800.      Print "C'�";NEMICI;" ";NOMESN$(NOMENEMICI);" che ostacola il cammino a ";NOMEP$(P)
  8801.     Else 
  8802.      Print "Ci sono";NEMICI;" ";NOMEPN$(NOMENEMICI);" ostacolano il cammino a ";NOMEP$(P)
  8803.     End If 
  8804.    End If 
  8805.    Proc FONDOSCHERMOGIOCO
  8806.   End If 
  8807.  End If 
  8808.  Return 
  8809.  MOSTRALARESISTENZADELPERSONAGGIOP:
  8810.  If P=0
  8811.   RESISTENZAP(0)=Max(RESISTENZAP(0),0)
  8812.   Print "La tua resistenza ï¿½ a";RESISTENZAP(0);" punt";
  8813.   If RESISTENZAP(0)=1
  8814.    Print "o"
  8815.   Else 
  8816.    Print "i"
  8817.   End If 
  8818.  Else 
  8819.   If PERSONAGGIOVISIBILEP(P)=True
  8820.    Print "La resistenza di ";NOMEP$(P);" ï¿½ a";RESISTENZAP(0);" punt";
  8821.    If RESISTENZAP(0)=1
  8822.     Print "o"
  8823.    Else 
  8824.     Print "i"
  8825.    End If 
  8826.    Proc FONDOSCHERMOGIOCO
  8827.   End If 
  8828.  End If 
  8829.  Return 
  8830.  SCELTASUINEMICI:
  8831.  If RESISTENZAP(P)=0 Then Pop 
  8832.  If P=0
  8833.   Repeat 
  8834.    Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8835.    SCELTA$=Input$(1)
  8836.   Until SCELTA$="c" or SCELTA$="f"
  8837.   If SCELTA$="c"
  8838.    Gosub COMBATTIMENTOCONINEMICI
  8839.   Else 
  8840.    Gosub TENTALAFUGADAINEMICI
  8841.   End If 
  8842.   If COMBATTIMENTOCONINEMICI=True
  8843.    Gosub COMBATTIMENTOCONINEMICI
  8844.   End If 
  8845.  Else 
  8846.   SCELTA=Rnd(1)
  8847.   If SCELTA=1
  8848.    Gosub COMBATTIMENTOCONINEMICI
  8849.   Else 
  8850.    Gosub TENTALAFUGADAINEMICI
  8851.   End If 
  8852.  End If 
  8853.  Return 
  8854.  SCELTADOPOILCOMBATTIMENTO:
  8855.  If RESISTENZAP(P)=0 Then Pop 
  8856.  If P=0
  8857.   Repeat 
  8858.    Proc TIC["Vuoi combattere (c) o vuoi fuggire (f) ?",ULTIMALINEA]
  8859.    SCELTA$=Input$(1)
  8860.   Until SCELTA$="c" or SCELTA$="f"
  8861.   If SCELTA$="f"
  8862.    Gosub TENTALAFUGADAINEMICI
  8863.   End If 
  8864.  Else 
  8865.   SCELTA=Rnd(1)
  8866.   If SCELTA=1
  8867.    Gosub TENTALAFUGADAINEMICI
  8868.   End If 
  8869.  End If 
  8870.  Return 
  8871.  TENTALAFUGADAINEMICI:
  8872.  DESTREZZA=Rnd(99)+1
  8873.  If P=0
  8874.   If DESTREZZA<=DESTREZZAP(0)
  8875.    Cls 
  8876.    Print "La tua destrezza non ï¿½ stata sufficiente per evitare lo scontro!"
  8877.    Gosub TURNODEINEMICI
  8878.    Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8879.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8880.    COMBATTIMENTOCONINEMICI=True
  8881.   Else 
  8882.    Cls 
  8883.    Print "Grazie alla tua destrezza hai evitato lo scontro."
  8884.    Proc TIC["Premi un tasto",ULTIMALINEA] : Wait Key 
  8885.    Pop Proc
  8886.   End If 
  8887.  Else 
  8888.   If PERSONAGGIOVISIBILEP(P)=True
  8889.    If DESTREZZA<=DESTREZZAP(P)
  8890.     Print "La destrezza di ";NOMEP$(P);" non ï¿½ stata sufficiente per evitare lo scontro!"
  8891.     Gosub TURNODEINEMICI
  8892.     Gosub MOSTRALARESISTENZADELPERSONAGGIOP
  8893.     COMBATTIMENTOCONINEMICI=True
  8894.    Else 
  8895.     Print "Grazie alla sua destrezza ";NOMEP$(P);" ha evitato lo scontro."
  8896.     Pop Proc
  8897.    End If 
  8898.    Proc FONDOSCHERMOGIOCO
  8899.   End If 
  8900.  End If 
  8901.  Return 
  8902.  TURNODEINEMICI:
  8903.  If P=0
  8904.   For A=1 To NEMICI
  8905.    NEMICO$=NOMESN$(NOMENEMICI)
  8906.    Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8907.    Print NEMICO$;A;
  8908.    DESTREZZA=Rnd(99)+1
  8909.    If DESTREZZA<=DESTREZZAP(0)
  8910.     Print " ha cercato di colpirti, ma tu hai";
  8911.     M0DODESTREZZA=Rnd(1)
  8912.     If M0DODESTREZZA=1
  8913.      Print " schivato";
  8914.     Else 
  8915.      Print " parato";
  8916.     End If 
  8917.     Print " il colpo."
  8918.    Else 
  8919.     If DIFESA>-1
  8920.      DIFESAVALIDA=Rnd(1)
  8921.      If DIFESAVALIDA=1
  8922.       Print " ti ha colpito, ma 1 ";NOMESCO$(DIFESA);" ti ha difes";
  8923.       If Btst(1,TIPOP(0))=True
  8924.        Print "a";
  8925.       Else 
  8926.        Print "o";
  8927.       End If 
  8928.       Print "."
  8929.      Else 
  8930.       Print " ti ha colpito e ti ha fatto una ferita!"
  8931.       FERITA=-(Rnd(2)+1)
  8932.       Add RESISTENZAP(0),FERITA
  8933.      End If 
  8934.     Else 
  8935.      Print " ti ha colpito e ti ha fatto una ferita!"
  8936.      FERITA=-(Rnd(2)+1)
  8937.      Add RESISTENZAP(0),FERITA
  8938.     End If 
  8939.    End If 
  8940.   Next A
  8941.  Else 
  8942.   For A=1 To NEMICI
  8943.    NEMICO$=NOMESN$(NOMENEMICI)
  8944.    Left$(NEMICO$,1)=Upper$(Left$(NEMICO$,1))
  8945.    If PERSONAGGIOVISIBILEP(P)=True
  8946.     Print NEMICO$;A;
  8947.    End If 
  8948.    DESTREZZA=Rnd(99)+1
  8949.    If DESTREZZA<=DESTREZZAP(P)
  8950.     If PERSONAGGIOVISIBILEP(P)=True
  8951.      Print " ha cercato di colpire ";NOMEP$(P);", ma ";
  8952.      If Btst(1,TIPOP(0))=True
  8953.       Print "lei";
  8954.      Else 
  8955.       Print "lui";
  8956.      End If 
  8957.      Print " ha ";
  8958.      M0DODESTREZZA=Rnd(1)
  8959.      If M0DODESTREZZA=1
  8960.       Print "schivato";
  8961.      Else 
  8962.       Print "parato";
  8963.      End If 
  8964.      Print " il colpo."
  8965.     End If 
  8966.    Else 
  8967.     If DIFESA>-1
  8968.      DIFESAVALIDA=Rnd(1)
  8969.      If DIFESAVALIDA=1
  8970.       If PERSONAGGIOVISIBILEP(P)=True
  8971.        Print " ha colpito ";NOMEP$(P);", ma 1 ";NOMESCO$(DIFESA);" l'ha difes";
  8972.        If Btst(1,TIPOP(0))=True
  8973.         Print "a";
  8974.        Else 
  8975.         Print "o";
  8976.        End If 
  8977.        Print "."
  8978.       End If 
  8979.      Else 
  8980.       If PERSONAGGIOVISIBILEP(P)=True
  8981.        Print " ha colpito ";NOMEP$(P);" e ";
  8982.        If Btst(1,TIPOP(0))=True
  8983.         Print "le";
  8984.        Else 
  8985.         Print "gli";
  8986.        End If 
  8987.        Print " ha fatto una ferita!"
  8988.       End If 
  8989.       FERITA=-(Rnd(2)+1)
  8990.       Add RESISTENZAP(0),FERITA
  8991.      End If 
  8992.     Else 
  8993.      If PERSONAGGIOVISIBILEP(P)=True
  8994.       Print " ha colpito ";NOMEP$(P);" e ";
  8995.       If Btst(1,TIPOP(0))=True
  8996.        Print "le";
  8997.       Else 
  8998.        Print "gli";
  8999.       End If 
  9000.       Print " ha fatto una ferita!"
  9001.      End If 
  9002.      FERITA=-(Rnd(2)+1)
  9003.      Add RESISTENZAP(0),FERITA
  9004.     End If 
  9005.    End If 
  9006.    Proc FONDOSCHERMOGIOCO
  9007.   Next A
  9008.  End If 
  9009.  Return 
  9010. End Proc
  9011. Procedure OGGETTI[M0DO]
  9012.  For A=0 To NUMEROCO
  9013.   OGGETTINELLUOGO(A)=0
  9014.   RESTINELLUOGO(A)=0
  9015.  Next A
  9016.  For A=0 To NUMEROO
  9017.   If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  9018.    If Btst(1,TIPOO(A))=True
  9019.     Inc RESTINELLUOGO(CATEGORIAO(A))
  9020.    Else 
  9021.     Inc OGGETTINELLUOGO(CATEGORIAO(A))
  9022.    End If 
  9023.   End If 
  9024.  Next A
  9025.  If M0DO=True
  9026.   For A=0 To NUMEROCO
  9027.    If OGGETTINELLUOGO(A)>0
  9028.     OGGETTIVISIBILI=True
  9029.    End If 
  9030.    If RESTINELLUOGO(A)>0
  9031.     OGGETTIVISIBILI=True
  9032.    End If 
  9033.   Next A
  9034.   SOLDINELLUOGO=SOLDIL(POSIZIONEP(0))
  9035.   If SOLDINELLUOGO>0
  9036.    OGGETTIVISIBILI=True
  9037.   End If 
  9038.   If OGGETTIVISIBILI=True
  9039.    Print "Oggetti visibili>"
  9040.    Proc FONDOSCHERMOGIOCO
  9041.    For A=0 To NUMEROCO
  9042.     If OGGETTINELLUOGO(A)>0
  9043.      Print Str$(OGGETTINELLUOGO(A))-" ";" ";
  9044.      If OGGETTINELLUOGO(A)=1
  9045.       Print NOMESCO$(A)
  9046.      Else 
  9047.       Print NOMEPCO$(A)
  9048.      End If 
  9049.      Proc FONDOSCHERMOGIOCO
  9050.     End If 
  9051.     If RESTINELLUOGO(A)>0
  9052.      Print Str$(RESTINELLUOGO(A))-" ";" ";
  9053.      If RESTINELLUOGO(A)=1
  9054.       Print NOMESRO$(A)
  9055.      Else 
  9056.       Print NOMEPRO$(A)
  9057.      End If 
  9058.      Proc FONDOSCHERMOGIOCO
  9059.     End If 
  9060.    Next A
  9061.    If SOLDINELLUOGO>0
  9062.     Print Str$(SOLDINELLUOGO)-" ";" ";
  9063.     If SOLDINELLUOGO=1
  9064.      Print "soldo"
  9065.     Else 
  9066.      Print "soldi"
  9067.     End If 
  9068.     Proc FONDOSCHERMOGIOCO
  9069.    End If 
  9070.   Else 
  9071.    Print "Nessun oggetto visibile"
  9072.   End If 
  9073.  End If 
  9074. End Proc
  9075. Procedure OGGETTOOPERSONAGGIOSUCUIUSARE[O]
  9076.  For A=0 To NUMEROCO
  9077.   If OGGETTINELLUOGO(A)>0
  9078.    Inc CATEGORIEOGGETTI
  9079.   End If 
  9080.   If RESTINELLUOGO(A)>0
  9081.    Inc CATEGORIEOGGETTI
  9082.   End If 
  9083.  Next A
  9084.  For A=0 To NUMEROP
  9085.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9086.    Inc PERSONAGGI
  9087.   End If 
  9088.  Next A
  9089.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0
  9090.   Print At(0,ULTIMALINEA);"Vuoi usare su un oggetto o su un personaggio (o/p) ?>";
  9091.   OGGETTOOPERSONAGGIO$=Input$(1)
  9092.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9093.   If OGGETTOOPERSONAGGIO$="o"
  9094.    Proc USASUUNOGGETTO[O]
  9095.   Else If OGGETTOOPERSONAGGIO$="p"
  9096.    Proc USASUUNPERSONAGGIO[O]
  9097.   End If 
  9098.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0
  9099.   Proc USASUUNOGGETTO[O]
  9100.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0
  9101.   Proc USASUUNPERSONAGGIO[O]
  9102.  Else 
  9103.   Print At(0,ULTIMALINEA);"Non ci sono oggetti o personaggi su cui usare 1 ";
  9104.   If Btst(1,TIPOO(O))=True
  9105.    Print NOMESRO$(CATEGORIAO(O));
  9106.   Else 
  9107.    Print NOMESCO$(CATEGORIAO(O));
  9108.   End If 
  9109.   If _MUSICA=False
  9110.    Bell 1
  9111.   End If 
  9112.   Proc _ASPETTA
  9113.  End If 
  9114. End Proc
  9115. Procedure _ORDINALUOGHI[NUMEROLUOGHIMAPPA,LARGHEZZAMAPPALUOGHI,LUOGODIPARTENZA,LIMITI]
  9116.  Dim D(7)
  9117.  D(0)=LARGHEZZAMAPPALUOGHI
  9118.  D(1)=LARGHEZZAMAPPALUOGHI+1
  9119.  D(2)=1
  9120.  D(3)=-LARGHEZZAMAPPALUOGHI+1
  9121.  D(4)=-LARGHEZZAMAPPALUOGHI
  9122.  D(5)=-LARGHEZZAMAPPALUOGHI-1
  9123.  D(6)=-1
  9124.  D(7)=LARGHEZZAMAPPALUOGHI-1
  9125.  For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9126.   E=DREZIONEL(0,A)/$10000
  9127.   DREZIONEL(0,A)=D(0)+A+E*$10000
  9128.   E=DREZIONEL(1,A)/$10000
  9129.   DREZIONEL(1,A)=D(1)+A+E*$10000
  9130.   E=DREZIONEL(2,A)/$10000
  9131.   DREZIONEL(2,A)=D(2)+A+E*$10000
  9132.   E=DREZIONEL(3,A)/$10000
  9133.   DREZIONEL(3,A)=D(3)+A+E*$10000
  9134.   E=DREZIONEL(4,A)/$10000
  9135.   DREZIONEL(4,A)=D(4)+A+E*$10000
  9136.   E=DREZIONEL(5,A)/$10000
  9137.   DREZIONEL(5,A)=D(5)+A+E*$10000
  9138.   E=DREZIONEL(6,A)/$10000
  9139.   DREZIONEL(6,A)=D(6)+A+E*$10000
  9140.   E=DREZIONEL(7,A)/$10000
  9141.   DREZIONEL(7,A)=D(7)+A+E*$10000
  9142.   E=DREZIONEL(8,A)/$10000
  9143.   DREZIONEL(8,A)=$FFFF+E*$10000
  9144.   E=DREZIONEL(9,A)/$10000
  9145.   DREZIONEL(9,A)=$FFFF+E*$10000
  9146.  Next A
  9147.  If LIMITI=True
  9148.   For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9149.    If A=LUOGODIPARTENZA
  9150.     E=DREZIONEL(0,A)/$10000
  9151.     DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  9152.     E=DREZIONEL(1,A)/$10000
  9153.     DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  9154.     E=DREZIONEL(2,A)/$10000
  9155.     DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  9156.     E=DREZIONEL(3,A)/$10000
  9157.     DREZIONEL(3,A)=$FFFF+E*$10000
  9158.     E=DREZIONEL(4,A)/$10000
  9159.     DREZIONEL(4,A)=$FFFF+E*$10000
  9160.     E=DREZIONEL(5,A)/$10000
  9161.     DREZIONEL(5,A)=$FFFF+E*$10000
  9162.     E=DREZIONEL(6,A)/$10000
  9163.     DREZIONEL(6,A)=$FFFF+E*$10000
  9164.     E=DREZIONEL(7,A)/$10000
  9165.     DREZIONEL(7,A)=$FFFF+E*$10000
  9166.    End If 
  9167.    If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  9168.     If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  9169.      E=DREZIONEL(0,A)/$10000
  9170.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9171.      E=DREZIONEL(1,A)/$10000
  9172.      DREZIONEL(1,A)=$FFFF+E*$10000
  9173.      E=DREZIONEL(2,A)/$10000
  9174.      DREZIONEL(2,A)=$FFFF+E*$10000
  9175.      E=DREZIONEL(3,A)/$10000
  9176.      DREZIONEL(3,A)=$FFFF+E*$10000
  9177.      E=DREZIONEL(4,A)/$10000
  9178.      DREZIONEL(4,A)=$FFFF+E*$10000
  9179.      E=DREZIONEL(5,A)/$10000
  9180.      DREZIONEL(5,A)=$FFFF+E*$10000
  9181.      E=DREZIONEL(6,A)/$10000
  9182.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9183.      E=DREZIONEL(7,A)/$10000
  9184.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9185.     Else 
  9186.      E=DREZIONEL(0,A)/$10000
  9187.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9188.      E=DREZIONEL(1,A)/$10000
  9189.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9190.      E=DREZIONEL(2,A)/$10000
  9191.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9192.      E=DREZIONEL(3,A)/$10000
  9193.      DREZIONEL(3,A)=$FFFF+E*$10000
  9194.      E=DREZIONEL(4,A)/$10000
  9195.      DREZIONEL(4,A)=$FFFF+E*$10000
  9196.      E=DREZIONEL(5,A)/$10000
  9197.      DREZIONEL(5,A)=$FFFF+E*$10000
  9198.      E=DREZIONEL(6,A)/$10000
  9199.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9200.      E=DREZIONEL(7,A)/$10000
  9201.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9202.     End If 
  9203.    End If 
  9204.    For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  9205.     If A=B
  9206.      E=DREZIONEL(0,A)/$10000
  9207.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9208.      E=DREZIONEL(1,A)/$10000
  9209.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9210.      E=DREZIONEL(2,A)/$10000
  9211.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9212.      E=DREZIONEL(3,A)/$10000
  9213.      DREZIONEL(3,A)=D(3)+A+E*$10000
  9214.      E=DREZIONEL(4,A)/$10000
  9215.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9216.      E=DREZIONEL(5,A)/$10000
  9217.      DREZIONEL(5,A)=$FFFF+E*$10000
  9218.      E=DREZIONEL(6,A)/$10000
  9219.      DREZIONEL(6,A)=$FFFF+E*$10000
  9220.      E=DREZIONEL(7,A)/$10000
  9221.      DREZIONEL(7,A)=$FFFF+E*$10000
  9222.     End If 
  9223.     If A=B+LARGHEZZAMAPPALUOGHI-1
  9224.      E=DREZIONEL(0,A)/$10000
  9225.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9226.      E=DREZIONEL(1,A)/$10000
  9227.      DREZIONEL(1,A)=$FFFF+E*$10000
  9228.      E=DREZIONEL(2,A)/$10000
  9229.      DREZIONEL(2,A)=$FFFF+E*$10000
  9230.      E=DREZIONEL(3,A)/$10000
  9231.      DREZIONEL(3,A)=$FFFF+E*$10000
  9232.      E=DREZIONEL(4,A)/$10000
  9233.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9234.      E=DREZIONEL(5,A)/$10000
  9235.      DREZIONEL(5,A)=D(5)+A+E*$10000
  9236.      E=DREZIONEL(6,A)/$10000
  9237.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9238.      E=DREZIONEL(7,A)/$10000
  9239.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9240.     End If 
  9241.    Next B
  9242.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  9243.     E=DREZIONEL(0,A)/$10000
  9244.     DREZIONEL(0,A)=$FFFF+E*$10000
  9245.     E=DREZIONEL(1,A)/$10000
  9246.     DREZIONEL(1,A)=$FFFF+E*$10000
  9247.     E=DREZIONEL(2,A)/$10000
  9248.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9249.     E=DREZIONEL(3,A)/$10000
  9250.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9251.     E=DREZIONEL(4,A)/$10000
  9252.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9253.     E=DREZIONEL(5,A)/$10000
  9254.     DREZIONEL(5,A)=$FFFF+E*$10000
  9255.     E=DREZIONEL(6,A)/$10000
  9256.     DREZIONEL(6,A)=$FFFF+E*$10000
  9257.     E=DREZIONEL(7,A)/$10000
  9258.     DREZIONEL(7,A)=$FFFF+E*$10000
  9259.    End If 
  9260.    If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9261.     E=DREZIONEL(0,A)/$10000
  9262.     DREZIONEL(0,A)=$FFFF+E*$10000
  9263.     E=DREZIONEL(1,A)/$10000
  9264.     DREZIONEL(1,A)=$FFFF+E*$10000
  9265.     E=DREZIONEL(2,A)/$10000
  9266.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9267.     E=DREZIONEL(3,A)/$10000
  9268.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9269.     E=DREZIONEL(4,A)/$10000
  9270.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9271.     E=DREZIONEL(5,A)/$10000
  9272.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9273.     E=DREZIONEL(6,A)/$10000
  9274.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9275.     E=DREZIONEL(7,A)/$10000
  9276.     DREZIONEL(7,A)=$FFFF+E*$10000
  9277.    End If 
  9278.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9279.     E=DREZIONEL(0,A)/$10000
  9280.     DREZIONEL(0,A)=$FFFF+E*$10000
  9281.     E=DREZIONEL(1,A)/$10000
  9282.     DREZIONEL(1,A)=$FFFF+E*$10000
  9283.     E=DREZIONEL(2,A)/$10000
  9284.     DREZIONEL(2,A)=$FFFF+E*$10000
  9285.     E=DREZIONEL(3,A)/$10000
  9286.     DREZIONEL(3,A)=$FFFF+E*$10000
  9287.     E=DREZIONEL(4,A)/$10000
  9288.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9289.     E=DREZIONEL(5,A)/$10000
  9290.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9291.     E=DREZIONEL(6,A)/$10000
  9292.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9293.     E=DREZIONEL(7,A)/$10000
  9294.     DREZIONEL(7,A)=$FFFF+E*$10000
  9295.    End If 
  9296.   Next A
  9297.  Else 
  9298.   For A=LUOGODIPARTENZA To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9299.    If A=LUOGODIPARTENZA
  9300.     E=DREZIONEL(0,A)/$10000
  9301.     DREZIONEL(0,A)=D(0)+LUOGODIPARTENZA+E*$10000
  9302.     E=DREZIONEL(1,A)/$10000
  9303.     DREZIONEL(1,0)=D(1)+LUOGODIPARTENZA+E*$10000
  9304.     E=DREZIONEL(2,A)/$10000
  9305.     DREZIONEL(2,0)=D(2)+LUOGODIPARTENZA+E*$10000
  9306.     E=DREZIONEL(3,A)/$10000
  9307.     DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  9308.     E=DREZIONEL(4,A)/$10000
  9309.     DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9310.     E=DREZIONEL(5,A)/$10000
  9311.     DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9312.     E=DREZIONEL(6,A)/$10000
  9313.     DREZIONEL(6,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9314.     E=DREZIONEL(7,A)/$10000
  9315.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  9316.    End If 
  9317.    If A>LUOGODIPARTENZA and A<LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI
  9318.     If A=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1
  9319.      E=DREZIONEL(0,A)/$10000
  9320.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9321.      E=DREZIONEL(1,A)/$10000
  9322.      DREZIONEL(1,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI+E*$10000
  9323.      E=DREZIONEL(2,A)/$10000
  9324.      DREZIONEL(2,A)=LUOGODIPARTENZA+E*$10000
  9325.      E=DREZIONEL(3,A)/$10000
  9326.      DREZIONEL(3,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9327.      E=DREZIONEL(4,A)/$10000
  9328.      DREZIONEL(4,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9329.      E=DREZIONEL(5,A)/$10000
  9330.      DREZIONEL(5,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-1+E*$10000
  9331.      E=DREZIONEL(6,A)/$10000
  9332.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9333.      E=DREZIONEL(7,A)/$10000
  9334.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9335.     Else 
  9336.      E=DREZIONEL(0,A)/$10000
  9337.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9338.      E=DREZIONEL(1,A)/$10000
  9339.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9340.      E=DREZIONEL(2,A)/$10000
  9341.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9342.      E=DREZIONEL(3,A)/$10000
  9343.      DREZIONEL(3,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+2+E*$10000
  9344.      E=DREZIONEL(4,A)/$10000
  9345.      DREZIONEL(4,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9346.      E=DREZIONEL(5,A)/$10000
  9347.      DREZIONEL(5,A)=A+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+E*$10000
  9348.      E=DREZIONEL(6,A)/$10000
  9349.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9350.      E=DREZIONEL(7,A)/$10000
  9351.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9352.     End If 
  9353.    End If 
  9354.    For B=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI To LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI Step LARGHEZZAMAPPALUOGHI
  9355.     If A=B
  9356.      E=DREZIONEL(0,A)/$10000
  9357.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9358.      E=DREZIONEL(1,A)/$10000
  9359.      DREZIONEL(1,A)=D(1)+A+E*$10000
  9360.      E=DREZIONEL(2,A)/$10000
  9361.      DREZIONEL(2,A)=D(2)+A+E*$10000
  9362.      E=DREZIONEL(3,A)/$10000
  9363.      DREZIONEL(3,A)=D(3)+A+E*$10000
  9364.      E=DREZIONEL(4,A)/$10000
  9365.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9366.      E=DREZIONEL(5,A)/$10000
  9367.      DREZIONEL(5,A)=A-1+E*$10000
  9368.      E=DREZIONEL(6,A)/$10000
  9369.      DREZIONEL(6,A)=A+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9370.      E=DREZIONEL(7,A)/$10000
  9371.      DREZIONEL(7,A)=A+LARGHEZZAMAPPALUOGHI*2-1+E*$10000
  9372.     End If 
  9373.     If A=B+LARGHEZZAMAPPALUOGHI-1
  9374.      E=DREZIONEL(0,A)/$10000
  9375.      DREZIONEL(0,A)=D(0)+A+E*$10000
  9376.      E=DREZIONEL(1,A)/$10000
  9377.      DREZIONEL(1,A)=A+1+E*$10000
  9378.      E=DREZIONEL(2,A)/$10000
  9379.      DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9380.      E=DREZIONEL(3,A)/$10000
  9381.      DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  9382.      E=DREZIONEL(4,A)/$10000
  9383.      DREZIONEL(4,A)=D(4)+A+E*$10000
  9384.      E=DREZIONEL(5,A)/$10000
  9385.      DREZIONEL(5,A)=D(5)+A+E*$10000
  9386.      E=DREZIONEL(6,A)/$10000
  9387.      DREZIONEL(6,A)=D(6)+A+E*$10000
  9388.      E=DREZIONEL(7,A)/$10000
  9389.      DREZIONEL(7,A)=D(7)+A+E*$10000
  9390.     End If 
  9391.    Next B
  9392.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1
  9393.     E=DREZIONEL(0,A)/$10000
  9394.     DREZIONEL(0,A)=LUOGODIPARTENZA+E*$10000
  9395.     E=DREZIONEL(1,A)/$10000
  9396.     DREZIONEL(1,A)=LUOGODIPARTENZA+1+E*$10000
  9397.     E=DREZIONEL(2,A)/$10000
  9398.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9399.     E=DREZIONEL(3,A)/$10000
  9400.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9401.     E=DREZIONEL(4,A)/$10000
  9402.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9403.     E=DREZIONEL(5,A)/$10000
  9404.     DREZIONEL(5,A)=A-1+E*$10000
  9405.     E=DREZIONEL(6,A)/$10000
  9406.     DREZIONEL(6,A)=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA+E*$10000
  9407.     E=DREZIONEL(7,A)/$10000
  9408.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9409.    End If 
  9410.    If A>LUOGODIPARTENZA+NUMEROLUOGHIMAPPA-LARGHEZZAMAPPALUOGHI+1 and A<LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9411.     E=DREZIONEL(0,A)/$10000
  9412.     DREZIONEL(0,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9413.     E=DREZIONEL(1,A)/$10000
  9414.     DREZIONEL(1,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI+E*$10000
  9415.     E=DREZIONEL(2,A)/$10000
  9416.     DREZIONEL(2,A)=D(2)+A+E*$10000
  9417.     E=DREZIONEL(3,A)/$10000
  9418.     DREZIONEL(3,A)=D(3)+A+E*$10000
  9419.     E=DREZIONEL(4,A)/$10000
  9420.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9421.     E=DREZIONEL(5,A)/$10000
  9422.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9423.     E=DREZIONEL(6,A)/$10000
  9424.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9425.     E=DREZIONEL(7,A)/$10000
  9426.     DREZIONEL(7,A)=A-NUMEROLUOGHIMAPPA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  9427.    End If 
  9428.    If A=LUOGODIPARTENZA+NUMEROLUOGHIMAPPA
  9429.     E=DREZIONEL(0,A)/$10000
  9430.     DREZIONEL(0,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-1+E*$10000
  9431.     E=DREZIONEL(1,A)/$10000
  9432.     DREZIONEL(1,A)=LUOGODIPARTENZA+E*$10000
  9433.     E=DREZIONEL(2,A)/$10000
  9434.     DREZIONEL(2,A)=A-LARGHEZZAMAPPALUOGHI+1+E*$10000
  9435.     E=DREZIONEL(3,A)/$10000
  9436.     DREZIONEL(3,A)=A-LARGHEZZAMAPPALUOGHI*2+1+E*$10000
  9437.     E=DREZIONEL(4,A)/$10000
  9438.     DREZIONEL(4,A)=D(4)+A+E*$10000
  9439.     E=DREZIONEL(5,A)/$10000
  9440.     DREZIONEL(5,A)=D(5)+A+E*$10000
  9441.     E=DREZIONEL(6,A)/$10000
  9442.     DREZIONEL(6,A)=D(6)+A+E*$10000
  9443.     E=DREZIONEL(7,A)/$10000
  9444.     DREZIONEL(7,A)=LUOGODIPARTENZA+LARGHEZZAMAPPALUOGHI-2+E*$10000
  9445.    End If 
  9446.   Next A
  9447.  End If 
  9448. End Proc
  9449. Procedure _ORDINASTANZE[E,NUMEROSTANZEMAPPA,LARGHEZZAMAPPASTANZE,STANZADIPARTENZA]
  9450.  Dim D(7)
  9451.  D(0)=LARGHEZZAMAPPASTANZE
  9452.  D(1)=LARGHEZZAMAPPASTANZE+1
  9453.  D(2)=1
  9454.  D(3)=-LARGHEZZAMAPPASTANZE+1
  9455.  D(4)=-LARGHEZZAMAPPASTANZE
  9456.  D(5)=-LARGHEZZAMAPPASTANZE-1
  9457.  D(6)=-1
  9458.  D(7)=LARGHEZZAMAPPASTANZE-1
  9459.  For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9460.   DREZIONES(0,A,E)=D(0)+A+E*$10000
  9461.   DREZIONES(1,A,E)=D(1)+A+E*$10000
  9462.   DREZIONES(2,A,E)=D(2)+A+E*$10000
  9463.   DREZIONES(3,A,E)=D(3)+A+E*$10000
  9464.   DREZIONES(4,A,E)=D(4)+A+E*$10000
  9465.   DREZIONES(5,A,E)=D(5)+A+E*$10000
  9466.   DREZIONES(6,A,E)=D(6)+A+E*$10000
  9467.   DREZIONES(7,A,E)=D(7)+A+E*$10000
  9468.   DREZIONES(8,A,E)=$FFFF+E*$10000
  9469.   DREZIONES(9,A,E)=$FFFF+E*$10000
  9470.  Next A
  9471.  For A=STANZADIPARTENZA To STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9472.   If A=STANZADIPARTENZA
  9473.    DREZIONES(0,A,E)=D(0)+STANZADIPARTENZA+E*$10000
  9474.    DREZIONES(1,A,E)=D(1)+STANZADIPARTENZA+E*$10000
  9475.    DREZIONES(2,A,E)=D(2)+STANZADIPARTENZA+E*$10000
  9476.    DREZIONES(3,A,E)=$FFFF+E*$10000
  9477.    DREZIONES(4,A,E)=$FFFF+E*$10000
  9478.    DREZIONES(5,A,E)=$FFFF+E*$10000
  9479.    DREZIONES(6,A,E)=$FFFF+E*$10000
  9480.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9481.   End If 
  9482.   If A>STANZADIPARTENZA and A<STANZADIPARTENZA+LARGHEZZAMAPPASTANZE
  9483.    If A=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE-1
  9484.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9485.     DREZIONES(1,A,E)=$FFFF+E*$10000
  9486.     DREZIONES(2,A,E)=$FFFF+E*$10000
  9487.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9488.     DREZIONES(4,A,E)=$FFFF+E*$10000
  9489.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9490.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9491.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9492.    Else 
  9493.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9494.     DREZIONES(1,A,E)=D(1)+A+E*$10000
  9495.     DREZIONES(2,A,E)=D(2)+A+E*$10000
  9496.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9497.     DREZIONES(4,A,E)=$FFFF+E*$10000
  9498.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9499.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9500.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9501.    End If 
  9502.   End If 
  9503.   For B=STANZADIPARTENZA+LARGHEZZAMAPPASTANZE To STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE Step LARGHEZZAMAPPASTANZE
  9504.    If A=B
  9505.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9506.     DREZIONES(1,A,E)=D(1)+A+E*$10000
  9507.     DREZIONES(2,A,E)=D(2)+A+E*$10000
  9508.     DREZIONES(3,A,E)=D(3)+A+E*$10000
  9509.     DREZIONES(4,A,E)=D(4)+A+E*$10000
  9510.     DREZIONES(5,A,E)=$FFFF+E*$10000
  9511.     DREZIONES(6,A,E)=$FFFF+E*$10000
  9512.     DREZIONES(7,A,E)=$FFFF+E*$10000
  9513.    End If 
  9514.    If A=B+LARGHEZZAMAPPASTANZE-1
  9515.     DREZIONES(0,A,E)=D(0)+A+E*$10000
  9516.     DREZIONES(1,A,E)=$FFFF+E*$10000
  9517.     DREZIONES(2,A,E)=$FFFF+E*$10000
  9518.     DREZIONES(3,A,E)=$FFFF+E*$10000
  9519.     DREZIONES(4,A,E)=D(4)+A+E*$10000
  9520.     DREZIONES(5,A,E)=D(5)+A+E*$10000
  9521.     DREZIONES(6,A,E)=D(6)+A+E*$10000
  9522.     DREZIONES(7,A,E)=D(7)+A+E*$10000
  9523.    End If 
  9524.   Next B
  9525.   If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1
  9526.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9527.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9528.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  9529.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  9530.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9531.    DREZIONES(5,A,E)=$FFFF+E*$10000
  9532.    DREZIONES(6,A,E)=$FFFF+E*$10000
  9533.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9534.   End If 
  9535.   If A>STANZADIPARTENZA+NUMEROSTANZEMAPPA-LARGHEZZAMAPPASTANZE+1 and A<STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9536.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9537.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9538.    DREZIONES(2,A,E)=D(2)+A+E*$10000
  9539.    DREZIONES(3,A,E)=D(3)+A+E*$10000
  9540.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9541.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  9542.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  9543.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9544.   End If 
  9545.   If A=STANZADIPARTENZA+NUMEROSTANZEMAPPA
  9546.    DREZIONES(0,A,E)=$FFFF+E*$10000
  9547.    DREZIONES(1,A,E)=$FFFF+E*$10000
  9548.    DREZIONES(2,A,E)=$FFFF+E*$10000
  9549.    DREZIONES(3,A,E)=$FFFF+E*$10000
  9550.    DREZIONES(4,A,E)=D(4)+A+E*$10000
  9551.    DREZIONES(5,A,E)=D(5)+A+E*$10000
  9552.    DREZIONES(6,A,E)=D(6)+A+E*$10000
  9553.    DREZIONES(7,A,E)=$FFFF+E*$10000
  9554.   End If 
  9555.  Next A
  9556. End Proc
  9557. Procedure PERSONAGGI
  9558.  For A=1 To NUMEROP
  9559.   Proc PERSONAGGIOVISIBILE[A]
  9560.   If PERSONAGGIOVISIBILEP(A)=True Then PERSONAGGIVISIBILI=True
  9561.  Next A
  9562.  If PERSONAGGIVISIBILI=True
  9563.   Print "Personaggi visibili>"
  9564.   Proc FONDOSCHERMOGIOCO
  9565.   For A=1 To NUMEROP
  9566.    If PERSONAGGIOVISIBILEP(A)=True
  9567.     If RESISTENZAP(A)=0
  9568.      Print "Il cadavere di ";NOMEP$(A);
  9569.      If Btst(1,TIPOP(A))=True
  9570.       Print "@"
  9571.      Else 
  9572.       Print 
  9573.      End If 
  9574.     Else 
  9575.      Print NOMEP$(A);
  9576.      If Btst(1,TIPOP(A))=True
  9577.       Print "@";
  9578.      End If 
  9579.      If Btst(2,TIPOP(A))=True
  9580.       Print " dormiente"
  9581.      Else 
  9582.       Print 
  9583.      End If 
  9584.     End If 
  9585.    End If 
  9586.    Proc FONDOSCHERMOGIOCO
  9587.   Next A
  9588.  Else 
  9589.   Print "Nessun personaggio visibile"
  9590.  End If 
  9591. End Proc
  9592. Procedure PERSONAGGIORICEVENTE[TIPO$,NUMERO]
  9593.  For A=1 To NUMEROP
  9594.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGIPRESENTI
  9595.  Next A
  9596.  If PERSONAGGIPRESENTI>1
  9597.   Locate 0,ULTIMALINEA : Input "A chi vuoi dare ?>";PERSONAGGIO$;
  9598.   Curs Off 
  9599.   If PERSONAGGIO$<>""
  9600.    For A=1 To NUMEROP
  9601.     If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A))
  9602.      If TIPO$="O"
  9603.       POSIZIONEO(NUMERO)=-1-A
  9604.       If Btst(1,TIPOO(NUMERO))=True
  9605.        Dec RESTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9606.        Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9607.        Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9608.       Else 
  9609.        Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9610.        Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9611.        Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9612.        Inc OGGETTODATOOLASCIATO(CATEGORIAO(NUMERO))
  9613.       End If 
  9614.       If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9615.        For B=0 To NUMEROO
  9616.         If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9617.          If Btst(1,TIPOO(B))=True
  9618.           Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(B))
  9619.           Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(B))
  9620.          Else 
  9621.           Add PESONETTOP(0),-PESOCO(CATEGORIAO(B))
  9622.           Add PESONETTOP(A),PESOCO(CATEGORIAO(B))
  9623.          End If 
  9624.         End If 
  9625.        Next B
  9626.        For B=1 To NUMEROP
  9627.         If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9628.          Add PESONETTOP(0),-PESOP(B)*1000
  9629.          Add PESONETTOP(0),-PESONETTOP(B)
  9630.          Add PESONETTOP(A),PESOP(B)*1000
  9631.          Add PESONETTOP(A),PESONETTOP(B)
  9632.         End If 
  9633.        Next B
  9634.       End If 
  9635.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9636.       Print "Hai deciso di dare 1 ";
  9637.       If Btst(1,TIPOO(NUMERO))=True
  9638.        Print NOMESRO$(CATEGORIAO(NUMERO));
  9639.       Else 
  9640.        Print NOMESCO$(CATEGORIAO(NUMERO));
  9641.       End If 
  9642.      Else If TIPO$="P"
  9643.       POSIZIONEP(NUMERO)=-1-A
  9644.       Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9645.       Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9646.       Add PESONETTOP(A),PESOP(NUMERO)*1000
  9647.       Add PESONETTOP(A),PESONETTOP(NUMERO)
  9648.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9649.       Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9650.      Else If TIPO$="S"
  9651.       Add SOLDIP(A),NUMERO
  9652.       Add SOLDIRICEVUTIP(A),NUMERO
  9653.       Add PESONETTOP(0),-NUMERO*PESOS
  9654.       Add PESONETTOP(A),NUMERO*PESOS
  9655.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9656.       Print "Hai deciso di dare";NUMERO;
  9657.       If NUMERO=1
  9658.        Print " soldo";
  9659.       Else 
  9660.        Print " soldi";
  9661.       End If 
  9662.      End If 
  9663.      Print " a ";NOMEP$(A);
  9664.      Proc _ASPETTA
  9665.      Exit 
  9666.     End If 
  9667.    Next A
  9668.    If A=NUMEROP+1
  9669.     Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  9670.     If _MUSICA=False
  9671.      Bell 1
  9672.     End If 
  9673.     Proc _ASPETTA
  9674.    End If 
  9675.   End If 
  9676.  Else 
  9677.   For A=1 To NUMEROP
  9678.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9679.     If TIPO$="O"
  9680.      POSIZIONEO(NUMERO)=-1-A
  9681.      If Btst(1,TIPOO(NUMERO))=True
  9682.       Dec RESTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9683.       Add PESONETTOP(0),-PESORESTOCO(CATEGORIAO(NUMERO))
  9684.       Add PESONETTOP(A),PESORESTOCO(CATEGORIAO(NUMERO))
  9685.      Else 
  9686.       Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(NUMERO))
  9687.       Add PESONETTOP(0),-PESOCO(CATEGORIAO(NUMERO))
  9688.       Add PESONETTOP(A),PESOCO(CATEGORIAO(NUMERO))
  9689.       Inc OGGETTODATOOLASCIATO(CATEGORIAO(NUMERO))
  9690.      End If 
  9691.      If Btst(1,TIPOCO(CATEGORIAO(NUMERO)))=True
  9692.       For B=0 To NUMEROO
  9693.        If POSIZIONEO(B)=-1-NUMERO and Btst(0,TIPOO(B))=False
  9694.         If Btst(1,TIPOO(B))=True
  9695.          Add PESONETTOP(A),-PESORESTOCO(CATEGORIAO(B))
  9696.         Else 
  9697.          Add PESONETTOP(A),-PESOCO(CATEGORIAO(B))
  9698.         End If 
  9699.        End If 
  9700.       Next B
  9701.       For B=1 To NUMEROP
  9702.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9703.         Add PESONETTOP(A),-PESOP(B)*1000
  9704.         Add PESONETTOP(A),-PESONETTOP(B)
  9705.        End If 
  9706.       Next B
  9707.      End If 
  9708.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9709.      Print "Hai deciso di dare 1 ";
  9710.      If Btst(1,TIPOO(NUMERO))=True
  9711.       Print NOMESRO$(CATEGORIAO(NUMERO));
  9712.      Else 
  9713.       Print NOMESCO$(CATEGORIAO(NUMERO));
  9714.      End If 
  9715.     Else If TIPO$="P"
  9716.      POSIZIONEP(NUMERO)=-1-A
  9717.      Add PESONETTOP(0),-PESOP(NUMERO)*1000
  9718.      Add PESONETTOP(0),-PESONETTOP(NUMERO)
  9719.      Add PESONETTOP(A),PESOP(NUMERO)*1000
  9720.      Add PESONETTOP(A),PESONETTOP(NUMERO)
  9721.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9722.      Print "Hai deciso di dare ";NOMEP$(NUMERO);
  9723.     Else If TIPO$="S"
  9724.      Add SOLDIP(A),NUMERO
  9725.      Add SOLDIRICEVUTIP(A),NUMERO
  9726.      Add PESONETTOP(0),-NUMERO*PESOS
  9727.      Add PESONETTOP(A),NUMERO*PESOS
  9728.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  9729.      Print "Hai deciso di dare";NUMERO;
  9730.      If NUMERO=1
  9731.       Print " soldo";
  9732.      Else 
  9733.       Print " soldi";
  9734.      End If 
  9735.     End If 
  9736.     Print " a ";NOMEP$(A);
  9737.     Proc _ASPETTA
  9738.    End If 
  9739.   Next A
  9740.  End If 
  9741. End Proc
  9742. Procedure PERSONAGGIOVISIBILE[P]
  9743.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  9744.   PERSONAGGIOVISIBILEP(P)=True
  9745.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  9746.   PERSONAGGIOVISIBILEP(P)=True
  9747.  Else 
  9748.   PERSONAGGIOVISIBILEP(P)=False
  9749.  End If 
  9750. End Proc
  9751. Procedure PRENDI
  9752.  If TEMP0DIATTRAVERSAMENTOP(0)>0
  9753.   For A=1 To NUMEROP
  9754.    If PERSONAGGIOVISIBILEP(A)=True
  9755.     Inc PERSONAGGI
  9756.    End If 
  9757.   Next A
  9758.   If PERSONAGGI>0
  9759.    Proc PRENDIUNPERSONAGGIO
  9760.   Else 
  9761.    Print At(0,ULTIMALINEA);"Non ci sono personaggi da prendere";
  9762.    If _MUSICA=False
  9763.     Bell 1
  9764.    End If 
  9765.    Proc _ASPETTA
  9766.    Pop Proc
  9767.   End If 
  9768.  Else 
  9769.   For A=1 To NUMEROP
  9770.    If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  9771.     Inc PERSONAGGI
  9772.    End If 
  9773.   Next A
  9774.  End If 
  9775.  For A=0 To NUMEROCO
  9776.   If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9777.   If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  9778.  Next A
  9779.  If SOLDIL(POSIZIONEP(0))>0
  9780.   SOLDI=True
  9781.  End If 
  9782.  If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=True
  9783.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto,un personaggio o dei soldi (o/p/s) ?>";
  9784.   OGGETTOPERSONAGGIOOSOLDI$=Input$(1)
  9785.   OGGETTOPERSONAGGIOOSOLDI$=Lower$(OGGETTOPERSONAGGIOOSOLDI$)
  9786.   If OGGETTOPERSONAGGIOOSOLDI$="o"
  9787.    Proc PRENDIUNOGGETTO
  9788.   Else If OGGETTOPERSONAGGIOOSOLDI$="p"
  9789.    Proc PRENDIUNPERSONAGGIO
  9790.   Else If OGGETTOPERSONAGGIOOSOLDI$="s"
  9791.    Proc PRENDIDEISOLDI
  9792.   End If 
  9793.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=True
  9794.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto o dei soldi (o/s) ?>";
  9795.   OGGETTOOSOLDI$=Input$(1)
  9796.   OGGETTOOSOLDI$=Lower$(OGGETTOOSOLDI$)
  9797.   If OGGETTOOSOLDI$="o"
  9798.    Proc PRENDIUNOGGETTO
  9799.   Else If OGGETTOOSOLDI$="s"
  9800.    Proc PRENDIDEISOLDI
  9801.   End If 
  9802.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=True
  9803.   Print At(0,ULTIMALINEA);"Vuoi prendere un personaggio o dei soldi (p/s) ?>";
  9804.   PERSONAGGIOOSOLDI$=Input$(1)
  9805.   PERSONAGGIOOSOLDI$=Lower$(PERSONAGGIOOSOLDI$)
  9806.   If PERSONAGGIOOSOLDI$="p"
  9807.    Proc PRENDIUNPERSONAGGIO
  9808.   Else If PERSONAGGIOOSOLDI$="s"
  9809.    Proc PRENDIDEISOLDI
  9810.   End If 
  9811.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI=0 and SOLDI=True
  9812.   Proc PRENDIDEISOLDI
  9813.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI>0 and SOLDI=False
  9814.   Print At(0,ULTIMALINEA);"Vuoi prendere un oggetto od un personaggio (o/p) ?>";
  9815.   OGGETTOOPERSONAGGIO$=Input$(1)
  9816.   OGGETTOOPERSONAGGIO$=Lower$(OGGETTOOPERSONAGGIO$)
  9817.   If OGGETTOOPERSONAGGIO$="o"
  9818.    Proc PRENDIUNOGGETTO
  9819.   Else If OGGETTOOPERSONAGGIO$="p"
  9820.    Proc PRENDIUNPERSONAGGIO
  9821.   End If 
  9822.  Else If CATEGORIEOGGETTI>0 and PERSONAGGI=0 and SOLDI=False
  9823.   Proc PRENDIUNOGGETTO
  9824.  Else If CATEGORIEOGGETTI=0 and PERSONAGGI>0 and SOLDI=False
  9825.   Proc PRENDIUNPERSONAGGIO
  9826.  Else 
  9827.   Print At(0,ULTIMALINEA);"Non ci sono oggetti,personaggi o soldi da prendere";
  9828.   If _MUSICA=False
  9829.    Bell 1
  9830.   End If 
  9831.   Proc _ASPETTA
  9832.  End If 
  9833. End Proc
  9834. Procedure PRENDIAO[AZIONE,P]
  9835.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9836.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9837.  For A=0 To NUMEROO
  9838.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9839.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9840.    B=A
  9841.   End If 
  9842.  Next A
  9843.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9844.   Pop Proc
  9845.  End If 
  9846.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9847.   A=B
  9848.  Else 
  9849.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9850.   B=0
  9851.   For A=0 To NUMEROO
  9852.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  9853.     OGGETTODELPERSONAGGIOP(B)=A
  9854.     Inc B
  9855.    End If 
  9856.   Next A
  9857.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9858.  End If 
  9859.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9860.  If Btst(1,TIPOO(A))=True
  9861.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9862.  Else 
  9863.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9864.  End If 
  9865.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9866.   For B=0 To NUMEROO
  9867.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9868.     If Btst(1,TIPOO(B))=True
  9869.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9870.     Else 
  9871.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9872.     End If 
  9873.    End If 
  9874.   Next B
  9875.   For B=1 To NUMEROP
  9876.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9877.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9878.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9879.    End If 
  9880.   Next B
  9881.  End If 
  9882.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9883.   Print NOMEP$(P);" prende 1 ";
  9884.   If Btst(1,TIPOO(A))=True
  9885.    Print NOMESRO$(CATEGORIAO(A))
  9886.   Else 
  9887.    Print NOMESCO$(CATEGORIAO(A))
  9888.   End If 
  9889.  End If 
  9890.  Dec PARAAAZIONEP(AZIONE,P)
  9891.  If PARAAAZIONEP(AZIONE,P)=0
  9892.   FINEA(AZIONE,P)=True
  9893.  End If 
  9894. End Proc
  9895. Procedure PRENDIAOB[AZIONE,P]
  9896.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9897.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9898.  For A=0 To NUMEROO
  9899.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9900.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9901.    B=A
  9902.   End If 
  9903.  Next A
  9904.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9905.   Pop Proc
  9906.  End If 
  9907.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9908.   A=B
  9909.  Else 
  9910.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9911.   B=0
  9912.   For A=0 To NUMEROO
  9913.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and CATEGORIAO(A)=PARABAZIONEP(AZIONE,P)
  9914.     OGGETTODELPERSONAGGIOP(B)=A
  9915.     Inc B
  9916.    End If 
  9917.   Next A
  9918.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9919.  End If 
  9920.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9921.  If Btst(1,TIPOO(A))=True
  9922.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9923.  Else 
  9924.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9925.  End If 
  9926.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9927.   For B=0 To NUMEROO
  9928.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9929.     If Btst(1,TIPOO(B))=True
  9930.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9931.     Else 
  9932.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9933.     End If 
  9934.    End If 
  9935.   Next B
  9936.   For B=1 To NUMEROP
  9937.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9938.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  9939.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  9940.    End If 
  9941.   Next B
  9942.  End If 
  9943.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  9944.   Print NOMEP$(P);" prende 1 ";
  9945.   If Btst(1,TIPOO(A))=True
  9946.    Print NOMESRO$(CATEGORIAO(A))
  9947.   Else 
  9948.    Print NOMESCO$(CATEGORIAO(A))
  9949.   End If 
  9950.  End If 
  9951.  Dec PARAAAZIONEP(AZIONE,P)
  9952.  If PARAAAZIONEP(AZIONE,P)=0
  9953.   FINEA(AZIONE,P)=True
  9954.  End If 
  9955. End Proc
  9956. Procedure PRENDIAOTB[AZIONE,P]
  9957.  If TEMP0DIATTRAVERSAMENTOP(P)>0 Then Pop Proc
  9958.  NUMEROOGGETTODELPERSONAGGIOP=-1
  9959.  For A=0 To NUMEROO
  9960.   If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9961.    Inc NUMEROOGGETTODELPERSONAGGIOP
  9962.    B=A
  9963.   End If 
  9964.  Next A
  9965.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  9966.   Pop Proc
  9967.  End If 
  9968.  If NUMEROOGGETTODELPERSONAGGIOP=0
  9969.   A=B
  9970.  Else 
  9971.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  9972.   B=0
  9973.   For A=0 To NUMEROO
  9974.    If POSIZIONEO(A)=POSIZIONEP(P) and Btst(7,TIPOCO(CATEGORIAO(A)))=False and TIPOCO(CATEGORIAO(A))=PARABAZIONEP(AZIONE,P)
  9975.     OGGETTODELPERSONAGGIOP(B)=A
  9976.     Inc B
  9977.    End If 
  9978.   Next A
  9979.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  9980.  End If 
  9981.  POSIZIONEO(A)=-1-P : Bset 0,TIPOO(A)
  9982.  If Btst(1,TIPOO(A))=True
  9983.   Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(A))
  9984.  Else 
  9985.   Add PESONETTOP(P),PESOCO(CATEGORIAO(A))
  9986.  End If 
  9987.  If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  9988.   For B=0 To NUMEROO
  9989.    If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  9990.     If Btst(1,TIPOO(B))=True
  9991.      Add PESONETTOP(P),PESORESTOCO(CATEGORIAO(B))
  9992.     Else 
  9993.      Add PESONETTOP(P),PESOCO(CATEGORIAO(B))
  9994.     End If 
  9995.    End If 
  9996.   Next B
  9997.   For B=1 To NUMEROP
  9998.    If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  9999.     Add PESONETTOP(PERSONAGGIOTROVATO),PESOP(B)*1000
  10000.     Add PESONETTOP(PERSONAGGIOTROVATO),PESONETTOP(B)
  10001.    End If 
  10002.   Next B
  10003.  End If 
  10004.  If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10005.   Print NOMEP$(P);" prende 1 ";
  10006.   If Btst(1,TIPOO(A))=True
  10007.    Print NOMESRO$(CATEGORIAO(A))
  10008.   Else 
  10009.    Print NOMESCO$(CATEGORIAO(A))
  10010.   End If 
  10011.  End If 
  10012.  Dec PARAAAZIONEP(AZIONE,P)
  10013.  If PARAAAZIONEP(AZIONE,P)=0
  10014.   FINEA(AZIONE,P)=True
  10015.  End If 
  10016. End Proc
  10017. Procedure PRENDIAP[AZIONE,P]
  10018.  For A=1 To NUMEROP
  10019.   If POSIZIONEP(A)=POSIZIONEP(P) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(P) and DREZIONEPRESAP(A)=DREZIONEPRESAP(P)
  10020.    POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  10021.    Add PESONETTOP(P),PESOP(A)*1000
  10022.    Add PESONETTOP(P),PESONETTOP(A)
  10023.    If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10024.     Print NOMEP$(P);" prende ";NOMEP$(A)
  10025.    End If 
  10026.    Dec PARABAZIONEP(AZIONE,P)
  10027.    If PARABAZIONEP(AZIONE,P)=0
  10028.     FINEA(AZIONE,P)=True
  10029.    End If 
  10030.    Exit 
  10031.   End If 
  10032.  Next A
  10033. End Proc
  10034. Procedure PRENDIDEISOLDI
  10035.  Locate 0,ULTIMALINEA : Input "Quanti soldi vuoi prendere (0-"+Str$(SOLDIL(POSIZIONEP(0)))-" "+") ?>";SOLDI$;
  10036.  Curs Off 
  10037.  If SOLDI$<>""
  10038.   SOLDI=Val(SOLDI$)
  10039.   Proc LIMITI[SOLDI,0,SOLDIL(POSIZIONEP(0))] : SOLDI=Param
  10040.   If SOLDI>0
  10041.    Add SOLDIP(0),SOLDI
  10042.    Add SOLDIL(POSIZIONEP(0)),-SOLDI
  10043.    Add PESONETTOP(0),SOLDI*PESOS
  10044.    COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10045.    Print "Hai deciso di prendere";SOLDI;
  10046.    If SOLDI=1
  10047.     Print " soldo";
  10048.    Else 
  10049.     Print " soldi";
  10050.    End If 
  10051.    Proc _ASPETTA
  10052.   End If 
  10053.  End If 
  10054. End Proc
  10055. Procedure PRENDIPA[AZIONE,P]
  10056.  A=PARAAAZIONEP(AZIONE,P)
  10057.  If POSIZIONEP(A)=POSIZIONEP(P)
  10058.   POSIZIONEP(A)=-1-P : Bset 0,TIPOP(A)
  10059.   Add PESONETTOP(P),PESOP(A)*1000
  10060.   Add PESONETTOP(P),PESONETTOP(A)
  10061.   If PERSONAGGIOVISIBILEP(P)=True and Btst(2,TIPOP(0))=False
  10062.    Print NOMEP$(P);" prende ";NOMEP$(A)
  10063.   End If 
  10064.   FINEA(AZIONE,P)=True
  10065.  End If 
  10066. End Proc
  10067. Procedure PRENDIUNOGGETTO
  10068.  For A=0 To NUMEROCO
  10069.   If OGGETTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  10070.   If RESTINELLUOGO(A)>0 and Btst(7,TIPOCO(A))=False Then Inc CATEGORIEOGGETTI
  10071.  Next A
  10072.  If CATEGORIEOGGETTI>0
  10073.   If CATEGORIEOGGETTI>1
  10074.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi prendere ?>";OGGETTO$;
  10075.    Curs Off 
  10076.    If OGGETTO$<>""
  10077.     For A=0 To NUMEROO
  10078.      If POSIZIONEO(A)=POSIZIONEP(0)
  10079.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10080.        If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  10081.         Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESCO$(CATEGORIAO(A));", ï¿½ residente";
  10082.         If _MUSICA=False
  10083.          Bell 1
  10084.         End If 
  10085.        Else 
  10086.         POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10087.         Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  10088.         Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  10089.         If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10090.          For B=0 To NUMEROO
  10091.           If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10092.            If Btst(1,TIPOO(B))=True
  10093.             Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10094.            Else 
  10095.             Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10096.            End If 
  10097.           End If 
  10098.          Next B
  10099.          For B=1 To NUMEROP
  10100.           If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10101.            Add PESONETTOP(0),PESOP(B)*1000
  10102.            Add PESONETTOP(0),PESONETTOP(B)
  10103.           End If 
  10104.          Next B
  10105.         End If 
  10106.         COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10107.         Print "Hai deciso di prendere 1 ";NOMESCO$(CATEGORIAO(A));
  10108.        End If 
  10109.        Proc _ASPETTA : Exit 
  10110.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10111.        If Btst(7,TIPOCO(CATEGORIAO(A)))=True
  10112.         Print At(0,ULTIMALINEA);"Non puoi prendere 1 ";NOMESRO$(CATEGORIAO(A));", ï¿½ residente";
  10113.         If _MUSICA=False
  10114.          Bell 1
  10115.         End If 
  10116.        Else 
  10117.         POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10118.         Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  10119.         Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(A))
  10120.         If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10121.          For B=0 To NUMEROO
  10122.           If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10123.            If Btst(1,TIPOO(B))=True
  10124.             Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10125.            Else 
  10126.             Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10127.            End If 
  10128.           End If 
  10129.          Next B
  10130.          For B=1 To NUMEROP
  10131.           If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10132.            Add PESONETTOP(0),PESOP(B)*1000
  10133.            Add PESONETTOP(0),PESONETTOP(B)
  10134.           End If 
  10135.          Next B
  10136.         End If 
  10137.         COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10138.         Print "Hai deciso di prendere 1 ";NOMESRO$(CATEGORIAO(A));
  10139.        End If 
  10140.        Proc _ASPETTA : Exit 
  10141.       End If 
  10142.      End If 
  10143.     Next A
  10144.     If A=NUMEROO+1
  10145.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  10146.      If _MUSICA=False
  10147.       Bell 1
  10148.      End If 
  10149.      Proc _ASPETTA
  10150.     End If 
  10151.    End If 
  10152.   Else 
  10153.    For A=0 To NUMEROO
  10154.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(7,TIPOCO(CATEGORIAO(A)))=False
  10155.      POSIZIONEO(A)=-1 : Bset 0,TIPOO(A)
  10156.      If Btst(1,TIPOO(A))=True
  10157.       Inc RESTODELPERSONAGGIO0(CATEGORIAO(A))
  10158.      Else 
  10159.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(A))
  10160.      End If 
  10161.      Add PESONETTOP(0),PESOCO(CATEGORIAO(A))
  10162.      If Btst(1,TIPOCO(CATEGORIAO(A)))=True
  10163.       For B=0 To NUMEROO
  10164.        If POSIZIONEO(B)=-1-A and Btst(0,TIPOO(B))=False
  10165.         If Btst(1,TIPOO(B))=True
  10166.          Add PESONETTOP(0),PESORESTOCO(CATEGORIAO(B))
  10167.         Else 
  10168.          Add PESONETTOP(0),PESOCO(CATEGORIAO(B))
  10169.         End If 
  10170.        End If 
  10171.       Next B
  10172.       For B=1 To NUMEROP
  10173.        If POSIZIONEP(B)=-1-A and Btst(0,TIPOP(B))=False
  10174.         Add PESONETTOP(0),PESOP(B)*1000
  10175.         Add PESONETTOP(0),PESONETTOP(B)
  10176.        End If 
  10177.       Next B
  10178.      End If 
  10179.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10180.      Print "Hai deciso di prendere 1 ";
  10181.      If Btst(1,TIPOO(A))=True
  10182.       Print NOMESRO$(CATEGORIAO(A));
  10183.      Else 
  10184.       Print NOMESCO$(CATEGORIAO(A));
  10185.      End If 
  10186.      Proc _ASPETTA : Exit 
  10187.     End If 
  10188.    Next A
  10189.   End If 
  10190.  End If 
  10191. End Proc
  10192. Procedure PRENDIUNPERSONAGGIO
  10193.  For A=1 To NUMEROP
  10194.   If PERSONAGGIOVISIBILEP(A)=True Then Inc PERSONAGGI
  10195.  Next A
  10196.  If PERSONAGGI>0
  10197.   If PERSONAGGI>1
  10198.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi prendere ?>";PERSONAGGIO$;
  10199.    Curs Off 
  10200.    If PERSONAGGIO$<>""
  10201.     For A=1 To NUMEROP
  10202.      If Lower$(PERSONAGGIO$)=Lower$(NOMEP$(A)) and POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10203.       POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  10204.       Add PESONETTOP(0),PESOP(A)*1000
  10205.       Add PESONETTOP(0),PESONETTOP(A)
  10206.       COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10207.       Print "Hai deciso di prendere ";NOMEP$(A);
  10208.       Proc _ASPETTA : Exit 
  10209.      End If 
  10210.     Next A
  10211.     If A=NUMEROP+1
  10212.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  10213.      If _MUSICA=False
  10214.       Bell 1
  10215.      End If 
  10216.      Proc _ASPETTA
  10217.     End If 
  10218.    End If 
  10219.   Else 
  10220.    For A=1 To NUMEROP
  10221.     If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  10222.      POSIZIONEP(A)=-1 : Bset 0,TIPOP(A)
  10223.      Add PESONETTOP(0),PESOP(A)*1000
  10224.      Add PESONETTOP(0),PESONETTOP(A)
  10225.      COMPIUTAAZIONE=1 : Locate 0,ULTIMALINEA : Cline 
  10226.      Print "Hai deciso di prendere ";NOMEP$(A);
  10227.      Proc _ASPETTA : Exit 
  10228.     End If 
  10229.    Next A
  10230.   End If 
  10231.  End If 
  10232. End Proc
  10233. Procedure SALVAUNFILE
  10234.  Show On : Cls 
  10235.  FILE$=Fsel$("*.Adv",NOMEFILE$,"Salva un file","di Adventures Conceiver")
  10236.  If Len(FILE$)>0
  10237.   If Upper$(Right$(FILE$,4))<>".ADV"
  10238.    FILE$=FILE$+".Adv"
  10239.   End If 
  10240.   Proc TIC["Sto salvando il file",ULTIMALINEA-1]
  10241.   Proc TIC[FILE$,ULTIMALINEA]
  10242.   Bsave FILE$,Start(BANCO) To Start(BANCO)+Length(BANCO) : Proc _ASPETTA
  10243.  End If 
  10244.  Erase BANCO
  10245.  Hide On 
  10246. End Proc
  10247. Procedure SCOPODELGIOCO[NUOVOSCOPODELGIOCO]
  10248.  SCOPODELGIOCO=AZIONEP(7,0)
  10249.  PARA=PARAAAZIONEP(7,0)
  10250.  PARB=PARABAZIONEP(7,0)
  10251.  PARC=PARACAZIONEP(7,0)
  10252.  Cls 
  10253.  If NUOVOSCOPODELGIOCO=True
  10254.   If M0DIFICA=False
  10255.    Proc TIC[MESSAGGIO3$,0] : Print 
  10256.   End If 
  10257.   Print "Scopo del gioco>";
  10258.   If SCOPODELGIOCO=0
  10259.    Print "nessuno"
  10260.   Else If SCOPODELGIOCO=1
  10261.    Print "Dai a ";NOMEP$(PARA);PARB;" ";
  10262.    If PARB=1
  10263.     Print NOMESCO$(PARC)
  10264.    Else 
  10265.     Print NOMEPCO$(PARC)
  10266.    End If 
  10267.   Else If SCOPODELGIOCO=2
  10268.    Print "Dai a ";NOMEP$(PARA);PARB;" oggett";
  10269.    If PARB=1
  10270.     Print "o ";
  10271.    Else 
  10272.     Print "i ";
  10273.    End If 
  10274.    Proc MOSTRACATEGORIAPERAZIONE[PARC]
  10275.   Else If SCOPODELGIOCO=3
  10276.    Print "Dai a ";NOMEP$(PARA);PARB;" sold";
  10277.    If PARB=1
  10278.     Print "o"
  10279.    Else 
  10280.     Print "i"
  10281.    End If 
  10282.   Else If SCOPODELGIOCO=4
  10283.    Print "Guadagna";PARA;" sold";
  10284.    If PARA=1
  10285.     Print "o"
  10286.    Else 
  10287.     Print "i"
  10288.    End If 
  10289.   Else If SCOPODELGIOCO=5
  10290.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" ";
  10291.    If PARB=1
  10292.     Print NOMESCO$(PARC)
  10293.    Else 
  10294.     Print NOMEPCO$(PARC)
  10295.    End If 
  10296.   Else If SCOPODELGIOCO=6
  10297.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" oggett";
  10298.    If PARB=1
  10299.     Print "o ";
  10300.    Else 
  10301.     Print "i ";
  10302.    End If 
  10303.    Proc MOSTRACATEGORIAPERAZIONE[PARC]
  10304.   Else If SCOPODELGIOCO=7
  10305.    Print "Lascia nel luogo";PARA;" di nome>";NOMEL$(PARA);PARB;" sold";
  10306.    If PARB=1
  10307.     Print "o"
  10308.    Else 
  10309.     Print "i"
  10310.    End If 
  10311.   Else If SCOPODELGIOCO=8
  10312.    Print "Prendi";PARA;" ";
  10313.    If PARA=1
  10314.     Print NOMESCO$(PARB)
  10315.    Else 
  10316.     Print NOMEPCO$(PARB)
  10317.    End If 
  10318.   Else If SCOPODELGIOCO=9
  10319.    Print "Prendi";PARA;" oggett";
  10320.    If PARA=1
  10321.     Print "o ";
  10322.    Else 
  10323.     Print "i ";
  10324.    End If 
  10325.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10326.   Else If SCOPODELGIOCO=10
  10327.    Print "Trova il personaggio";PARA;" di nome>";NOMEP$(PARA)
  10328.   Else If SCOPODELGIOCO=11
  10329.    Print "Uccidi il personaggio";PARA;" di nome>";NOMEP$(PARA)
  10330.   Else If SCOPODELGIOCO=12
  10331.    Print "Usa 1 ";NOMESCO$(PARA);" su 1 ";NOMESCO$(PARB)
  10332.   Else If SCOPODELGIOCO=13
  10333.    Print "Usa 1 ";NOMESCO$(PARA);" su 1 oggetto ";
  10334.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10335.   Else If SCOPODELGIOCO=14
  10336.    Print "Usa 1 ";NOMESCO$(PARA);" su ";NOMEP$(PARB)
  10337.   Else If SCOPODELGIOCO=15
  10338.    Print "Usa 1 oggetto ";
  10339.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10340.    Print Space$(17);"su 1 ";NOMESCO$(PARB)
  10341.   Else If SCOPODELGIOCO=16
  10342.    Print "Usa 1 oggetto ";
  10343.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10344.    Print Space$(17);"su 1 oggetto ";
  10345.    Proc MOSTRACATEGORIAPERAZIONE[PARB]
  10346.   Else If SCOPODELGIOCO=17
  10347.    Print "Usa 1 oggetto ";
  10348.    Proc MOSTRACATEGORIAPERAZIONE[PARA]
  10349.    Print Space$(17);"su ";NOMEP$(PARB)
  10350.   Else If SCOPODELGIOCO=18
  10351.    Print "Vai nel luogo";PARA;" di nome>";NOMEL$(PARA)
  10352.   End If 
  10353.  Else 
  10354.   If NUOVOSCOPODELGIOCO=1
  10355.    'Dai al personaggio PARA PARB oggetti PARC 
  10356.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10357.    If PERSONAGGIOACUIDARE$<>""
  10358.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10359.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10360.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10361.     If NUMEROOGGETTIDADARE$<>""
  10362.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10363.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10364.      MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  10365.     End If 
  10366.    End If 
  10367.   Else If NUOVOSCOPODELGIOCO=2
  10368.    'Dai al personaggio PARA PARB oggetti di tipo PARC 
  10369.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10370.    If PERSONAGGIOACUIDARE$<>""
  10371.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10372.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10373.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10374.     If NUMEROOGGETTIDADARE$<>""
  10375.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10376.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10377.      MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  10378.     End If 
  10379.    End If 
  10380.   Else If NUOVOSCOPODELGIOCO=3
  10381.    'Dai al personaggio PARA PARB soldi
  10382.    Locate 0,ULTIMALINEA : Input "A quale personaggio vuoi dare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOACUIDARE$
  10383.    If PERSONAGGIOACUIDARE$<>""
  10384.     PERSONAGGIOACUIDARE=Val(PERSONAGGIOACUIDARE$)
  10385.     Proc LIMITI[PERSONAGGIOACUIDARE,1,NUMEROP] : PARA=Param
  10386.     Locate 0,ULTIMALINEA : Input "Quanti soldi gli devi dare (1-65535) ?>";SOLDIDADARE$
  10387.     If SOLDIDADARE$<>""
  10388.      SOLDIDADARE=Val(SOLDIDADARE$)
  10389.      Proc LIMITI[SOLDIDADARE,1,65535] : PARB=Param
  10390.     End If 
  10391.    End If 
  10392.   Else If NUOVOSCOPODELGIOCO=4
  10393.    'Guadagna PARA soldi 
  10394.    Locate 0,ULTIMALINEA : Input "Quanti soldi devi guadagnare (1-65535) ?>";SOLDIDAGUADAGNARE$
  10395.    If SOLDIDAGUADAGNARE$<>""
  10396.     SOLDIDAGUADAGNARE=Val(SOLDIDAGUADAGNARE$)
  10397.     Proc LIMITI[SOLDIDAGUADAGNARE,1,65535] : PARA=Param
  10398.    End If 
  10399.   Else If NUOVOSCOPODELGIOCO=5
  10400.    'Lascia nel luogo PARA PARB oggetti PARC 
  10401.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10402.    If LUOGOINCUILASCIARE$<>""
  10403.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10404.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10405.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi lasciare (1-65535) ?>";NUMEROOGGETTIDALASCIARE$
  10406.     If NUMEROOGGETTIDALASCIARE$<>""
  10407.      NUMEROOGGETTIDALASCIARE=Val(NUMEROOGGETTIDALASCIARE$)
  10408.      Proc LIMITI[NUMEROOGGETTIDALASCIARE,1,65535] : PARB=Param
  10409.      MOSTRAOGGETTOPERINSERIMENTO[0] : PARC=Param
  10410.     End If 
  10411.    End If 
  10412.   Else If NUOVOSCOPODELGIOCO=6
  10413.    'Lascia nel luogo PARA PARB oggetti di tipo PARC 
  10414.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10415.    If LUOGOINCUILASCIARE$<>""
  10416.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10417.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10418.     Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi dare (1-65535) ?>";NUMEROOGGETTIDADARE$
  10419.     If NUMEROOGGETTIDADARE$<>""
  10420.      NUMEROOGGETTIDADARE=Val(NUMEROOGGETTIDADARE$)
  10421.      Proc LIMITI[NUMEROOGGETTIDADARE,1,65535] : PARB=Param
  10422.      MOSTRACATEGORIAPERINSERIMENTO[0] : PARC=Param
  10423.     End If 
  10424.    End If 
  10425.   Else If NUOVOSCOPODELGIOCO=7
  10426.    'Lascia nel luogo PARA PARB soldi
  10427.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi lasciare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUILASCIARE$
  10428.    If LUOGOINCUILASCIARE$<>""
  10429.     LUOGOINCUILASCIARE=Val(LUOGOINCUILASCIARE$)
  10430.     Proc LIMITI[LUOGOINCUILASCIARE,0,NUMEROL] : PARA=Param
  10431.     Locate 0,ULTIMALINEA : Input "Quanti soldi ci devi lasciare (1-65535) ?>";SOLDIDALASCIARE$
  10432.     If SOLDIDALASCIARE$<>""
  10433.      SOLDIDALASCIARE=Val(SOLDIDALASCIARE$)
  10434.      Proc LIMITI[SOLDIDALASCIARE,1,65535] : PARB=Param
  10435.     End If 
  10436.    End If 
  10437.   Else If NUOVOSCOPODELGIOCO=8
  10438.    'Prendi PARA oggetti PARB
  10439.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  10440.    If NUMEROOGGETTIDAPRENDERE$<>""
  10441.     NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  10442.     Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  10443.     MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10444.    End If 
  10445.   Else If NUOVOSCOPODELGIOCO=9
  10446.    'Prendi PARA oggetti di tipo PARB
  10447.    Locate 0,ULTIMALINEA : Input "Quanti oggetti vuoi prendere (1-65535) ?>";NUMEROOGGETTIDAPRENDERE$
  10448.    If NUMEROOGGETTIDAPRENDERE$<>""
  10449.     NUMEROOGGETTIDAPRENDERE=Val(NUMEROOGGETTIDAPRENDERE$)
  10450.     Proc LIMITI[NUMEROOGGETTIDAPRENDERE,1,65535] : PARA=Param
  10451.     MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10452.    End If 
  10453.   Else If NUOVOSCOPODELGIOCO=10
  10454.    'Trova il personaggio PARA 
  10455.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi trovare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODATROVARE$
  10456.    If PERSONAGGIODATROVARE$<>""
  10457.     PERSONAGGIODATROVARE=Val(PERSONAGGIODATROVARE$)
  10458.     Proc LIMITI[PERSONAGGIODATROVARE,1,NUMEROP] : PARA=Param
  10459.    End If 
  10460.   Else If NUOVOSCOPODELGIOCO=11
  10461.    'Uccidi il personaggio PARA  
  10462.    Locate 0,ULTIMALINEA : Input "Quale personaggio vuoi uccidere (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIODAUCCIDERE$
  10463.    If PERSONAGGIODAUCCIDERE$<>""
  10464.     PERSONAGGIODAUCCIDERE=Val(PERSONAGGIODAUCCIDERE$)
  10465.     Proc LIMITI[PERSONAGGIODAUCCIDERE,1,NUMEROP] : PARA=Param
  10466.    End If 
  10467.   Else If NUOVOSCOPODELGIOCO=12
  10468.    'Usa un'oggetto PARA su un'oggetto PARB
  10469.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10470.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10471.   Else If NUOVOSCOPODELGIOCO=13
  10472.    'Usa un'oggetto PARA su un'oggetto di tipo PARB
  10473.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10474.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10475.   Else If NUOVOSCOPODELGIOCO=14
  10476.    'Usa un'oggetto PARA sul personaggio PARB
  10477.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARA=Param
  10478.    Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  10479.    If PERSONAGGIOSUCUIUSARE$<>""
  10480.     PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  10481.     Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  10482.    End If 
  10483.   Else If NUOVOSCOPODELGIOCO=15
  10484.    'Usa un'oggetto di tipo PARA su un'oggetto PARB
  10485.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10486.    MOSTRAOGGETTOPERINSERIMENTO[0] : PARB=Param
  10487.   Else If NUOVOSCOPODELGIOCO=16
  10488.    'Usa un'oggetto di tipo PARA su un'oggetto di tipo PARB
  10489.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10490.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARB=Param
  10491.   Else If NUOVOSCOPODELGIOCO=17
  10492.    'Usa 1 oggetto di tipo PARA sul personaggio PARB 
  10493.    MOSTRACATEGORIAPERINSERIMENTO[0] : PARA=Param
  10494.    Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare (1-"+Str$(NUMEROP)-" "+") ?>";PERSONAGGIOSUCUIUSARE$
  10495.    If PERSONAGGIOSUCUIUSARE$<>""
  10496.     PERSONAGGIOSUCUIUSARE=Val(PERSONAGGIOSUCUIUSARE$)
  10497.     Proc LIMITI[PERSONAGGIOSUCUIUSARE,1,NUMEROP] : PARB=Param
  10498.    End If 
  10499.   Else If NUOVOSCOPODELGIOCO=18
  10500.    'Vai nel luogo PARA
  10501.    Locate 0,ULTIMALINEA : Input "In quale luogo vuoi andare (0-"+Str$(NUMEROL)-" "+") ?>";LUOGOINCUIANDARE$
  10502.    If LUOGOINCUIANDARE$<>""
  10503.     LUOGOINCUIANDARE=Val(LUOGOINCUIANDARE$)
  10504.     Proc LIMITI[LUOGOINCUIANDARE,0,NUMEROL] : PARA=Param
  10505.    End If 
  10506.   End If 
  10507.   AZIONEP(7,0)=NUOVOSCOPODELGIOCO
  10508.   PARAAAZIONEP(7,0)=PARA
  10509.   PARABAZIONEP(7,0)=PARB
  10510.   PARACAZIONEP(7,0)=PARC
  10511.  End If 
  10512.  Curs Off 
  10513. End Proc
  10514. Procedure SEGUI[AZIONE,P]
  10515. End Proc
  10516. Procedure SEGUIPA[AZIONE,P]
  10517. End Proc
  10518. Procedure SETTASCHERMO
  10519.  Hide On 
  10520.  If Ntsc Then LUNGHEZZASCHERMO=200 Else LUNGHEZZASCHERMO=256
  10521.  ULTIMALINEA=LUNGHEZZASCHERMO/8-1
  10522.  Screen Open 0,640,LUNGHEZZASCHERMO,2,Hires : Curs Off : Flash Off 
  10523.  Palette $60,$CCC : Pen 1 : Paper 0 : Ink 1,0
  10524.  Set Curs 170,85,170,85,170,85,170,85
  10525.  Wait Vbl : Limit Mouse 
  10526. End Proc
  10527. Procedure SUONAUNMODULO[M0DO]
  10528.  If M0DO=True
  10529.   Show On 
  10530.   NOMEMODULO$=Fsel$("**","","Carica un modulo sonoro xTracker da ascoltare")
  10531.   If NOMEMODULO$<>""
  10532.    Track Loop Of : Track Stop 
  10533.    Track Load NOMEMODULO$,BANCOMODULO
  10534.    Track Play BANCOMODULO : Track Loop On 
  10535.   End If 
  10536.   Hide On 
  10537.  Else 
  10538.   M0DULO=Rnd(92)+1
  10539.   If M0DULO=93
  10540.    NOMEMODULOPP$="XFH_Lavoro:Musica/Modules/Beacand.mod.pp"
  10541.   Else If M0DULO=92
  10542.    NOMEMODULOPP$="XFH_Lavoro:Musica/Modules/ANewJob.mod"
  10543.   Else 
  10544.    NOMEMODULOPP$="XFH_Lavoro:Musica/Modules/mod."+Str$(M0DULO)-" "+".pp"
  10545.   End If 
  10546.   If NOMEMODULOPP$<>""
  10547.     Extension_5_0120 NOMEMODULOPP$,BANCOMODULO
  10548.    Bsave "RAM:ModuloXTracker",Start(BANCOMODULO) To Start(BANCOMODULO)+Length(BANCOMODULO)-1
  10549.    Track Load "RAM:ModuloXTracker",BANCOMODULO
  10550.    Track Loop Of : Track Stop 
  10551.    Track Play BANCOMODULO : Track Loop On 
  10552.   End If 
  10553.  End If 
  10554. End Proc[NOMEMODULO$]
  10555. Procedure TEMP0
  10556.  Print "Tempo trascorso>";
  10557.  If M0DOVISUALIZZAZIONETEMPO=True
  10558.   GIORNI=TEMP0TRASCORSO/1440 : Print Str$(GIORNI)-" ";
  10559.   If GIORNI=1
  10560.   Print " giorno"; Else Print " giorni";
  10561.   End If 
  10562.   _ORE=TEMP0TRASCORSO/60 mod 24 : Print _ORE;
  10563.   If _ORE=1
  10564.   Print " ora"; Else Print " ore";
  10565.   End If 
  10566.   M1NUTI=TEMP0TRASCORSO mod 60 : Print M1NUTI;
  10567.   If M1NUTI=1
  10568.   Print " minuto" Else Print " minuti"
  10569.   End If 
  10570.  Else 
  10571.   GIORNI=TEMP0TRASCORSO/1440 : Print "Giorni";GIORNI;
  10572.   _ORE=TEMP0TRASCORSO/60 mod 24
  10573.   Print Using " #";_ORE/10; Using "#";_ORE mod 10;
  10574.   M1NUTI=TEMP0TRASCORSO mod 60
  10575.   Print Using ":#";M1NUTI/10; Using "#";M1NUTI mod 10
  10576.  End If 
  10577. End Proc
  10578. Procedure TIC[TESTO$,LINEA]
  10579.  '-> Testo Invertito e Centrato by Stefano Regattin 
  10580.  'i> 23 maggio 1996 
  10581.  'm> 25 maggio 1996 
  10582.  '--------------------------------------------------------------------------- 
  10583.  'LINEA contiene il numero di linea dove si posizioner� il testo; se vale -1
  10584.  ' (True) il testo sar� posizionato alla linea dove si trova il cursore; in 
  10585.  ' questo caso sar� necessario un comando Print per spostare il cursore 
  10586.  '----------------------------------------------------------------------
  10587.  If LINEA=True Then L=Y Curs Else L=LINEA
  10588.  Locate 0,L : Inverse On : Cline : Centre TESTO$ : Inverse Off 
  10589. End Proc
  10590. Procedure TIPODILUOGO
  10591.  Print "Tipo di luogo>";TIPOL$(TIPOL(POSIZIONEP(0)))
  10592. End Proc
  10593. Procedure TIPODILUOGODIDESTINAZIONE
  10594.  Print "Tipo di luogo di destinazione>";TIPOL$(TIPOL(LUOGODIDESTINAZIONEP(0)))
  10595. End Proc
  10596. Procedure USA
  10597.  For A=0 To NUMEROCO
  10598.   If OGGETTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10599.   If RESTODELPERSONAGGIO0(A)>0 Then Inc CATEGORIEOGGETTI
  10600.  Next A
  10601.  If CATEGORIEOGGETTI>0
  10602.   If CATEGORIEOGGETTI>1
  10603.    Locate 0,ULTIMALINEA : Input "Quale oggetto vuoi usare ?>";OGGETTO$;
  10604.    Curs Off 
  10605.    If OGGETTO$<>""
  10606.     For A=0 To NUMEROO
  10607.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10608.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=False
  10609.        Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10610.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A))) and Btst(1,TIPOO(A))=True
  10611.        Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10612.       End If 
  10613.      End If 
  10614.     Next A
  10615.     If A=NUMEROO+1
  10616.      Locate 0,ULTIMALINEA : Cline : Print "Non hai nessun ";OGGETTO$;
  10617.      If _MUSICA=False
  10618.       Bell 1
  10619.      End If 
  10620.      Proc _ASPETTA
  10621.     End If 
  10622.    End If 
  10623.   Else 
  10624.    For A=0 To NUMEROO
  10625.     If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10626.      Proc OGGETTOOPERSONAGGIOSUCUIUSARE[A] : Exit 
  10627.     End If 
  10628.    Next A
  10629.   End If 
  10630.  Else 
  10631.   Print At(0,ULTIMALINEA);"Non hai oggetti da usare";
  10632.   If _MUSICA=False
  10633.    Bell 1
  10634.   End If 
  10635.   Proc _ASPETTA
  10636.  End If 
  10637. End Proc
  10638. Procedure USASUOGGETTO[O,Q]
  10639.  COMPIUTAAZIONE=1
  10640.  If TIPOCO(CATEGORIAO(O))=%100000
  10641.   Locate 0,ULTIMALINEA
  10642.   If Btst(1,TIPOO(O))=True
  10643.    Print "Non puoi ammaliare 1 ";
  10644.    If Btst(1,TIPOO(Q))=True
  10645.     Print NOMESRO$(CATEGORIAO(Q));
  10646.    Else 
  10647.     Print NOMESCO$(CATEGORIAO(Q));
  10648.    End If 
  10649.    Print " con 1 ";NOMESRO$(CATEGORIAO(O))
  10650.   Else 
  10651.    Print "Hai deciso di ammaliare 1 ";
  10652.    If Btst(1,TIPOO(Q))=True
  10653.     Print NOMESRO$(CATEGORIAO(Q));
  10654.    Else 
  10655.     Print NOMESCO$(CATEGORIAO(Q));
  10656.    End If 
  10657.    Print " con 1 ";
  10658.    If Btst(1,TIPOO(O))=True
  10659.     Print NOMESRO$(CATEGORIAO(O));
  10660.    Else 
  10661.     Print NOMESCO$(CATEGORIAO(O));
  10662.    End If 
  10663.    MAGIA=PARATIPOCO(CATEGORIAO(O))/$10000
  10664.    PARMAGIA=PARATIPOCO(CATEGORIAO(O)) mod $10000
  10665.    If MAGIA=0
  10666.     'Cambia la categoria dell'oggetto, cio� lo trasforma in un'altro oggetto 
  10667.     CATEGORIAO(Q)=PARMAGIA
  10668.    Else If MAGIA=1
  10669.     'Fa diventare l'oggetto il resto dell'oggetto e viceversa
  10670.     Bchg 1,TIPOO(Q)
  10671.    Else If MAGIA=2
  10672.     'Fa diventare l'oggetto il resto di un oggetto e crea un nuovo oggetto della 
  10673.     ' categoria indicata dal parametro PARMAGIA
  10674.     Bclr 1,TIPOO(Q)
  10675.     Inc NUMEROO
  10676.     CATEGORIAO(NUMEROO)=PARMAGIA
  10677.     POSIZIONEO(NUMEROO)=POSIZIONEO(Q)
  10678.    End If 
  10679.   End If 
  10680.  Else 
  10681.   Locate 0,ULTIMALINEA : Cline : Print "Hai deciso di usare 1 ";
  10682.   If Btst(1,TIPOO(O))=True
  10683.    Print NOMESRO$(CATEGORIAO(O));
  10684.   Else 
  10685.    Print NOMESCO$(CATEGORIAO(O));
  10686.   End If 
  10687.   Print " su 1 ";
  10688.   If Btst(1,TIPOO(Q))=True
  10689.    Print NOMESRO$(CATEGORIAO(Q));
  10690.   Else 
  10691.    Print NOMESCO$(CATEGORIAO(Q));
  10692.   End If 
  10693.  End If 
  10694.  OGGETTOUSANTE=O
  10695.  OGGETTOUSATO=Q
  10696.  Proc _ASPETTA
  10697. End Proc
  10698. Procedure USASUOGGETTOP[O,P,Q]
  10699.  If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0) and Btst(2,TIPOP(0))=False
  10700.   Print NOMEP$(P);" sta usando 1 ";
  10701.   If Btst(1,TIPOO(O))=True
  10702.    Print NOMESRO$(CATEGORIAO(O));
  10703.   Else 
  10704.    Print NOMESCO$(CATEGORIAO(O));
  10705.   End If 
  10706.   Print " su 1 ";
  10707.   If Btst(1,TIPOO(Q))=True
  10708.    Print NOMESRO$(CATEGORIAO(Q))
  10709.   Else 
  10710.    Print NOMESCO$(CATEGORIAO(Q))
  10711.   End If 
  10712.  End If 
  10713. End Proc
  10714. Procedure USASUPERSONAGGIO[O,P]
  10715.  Locate 0,ULTIMALINEA : Cline 
  10716.  If P=0
  10717.   If TIPOCO(CATEGORIAO(O))=%1
  10718.    If Btst(1,TIPOO(O))=True
  10719.     Print "Non puoi mangiarti 1"; : RESTO=True
  10720.     If _MUSICA=False
  10721.      Bell 1
  10722.     End If 
  10723.    Else 
  10724.     COMPIUTAAZIONE=1
  10725.     Print "Hai deciso di mangiarti 1";
  10726.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  10727.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10728.     Bset 1,TIPOO(O)
  10729.     Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10730.     RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10731.    End If 
  10732.   Else If TIPOCO(CATEGORIAO(O))=%100
  10733.    If Btst(1,TIPOO(O))=True
  10734.     Print "Non puoi difenderti con 1"; : RESTO=True
  10735.     If _MUSICA=False
  10736.      Bell 1
  10737.     End If 
  10738.    Else 
  10739.     COMPIUTAAZIONE=1
  10740.     Print "Hai deciso di difenderti con 1";
  10741.     Bset 2,TIPOO(O)
  10742.    End If 
  10743.   Else If TIPOCO(CATEGORIAO(O))=%1000
  10744.    If Btst(1,TIPOO(O))=True
  10745.     Print "Non puoi leggerti 1"; : RESTO=True
  10746.     If _MUSICA=False
  10747.      Bell 1
  10748.     End If 
  10749.    Else 
  10750.     COMPIUTAAZIONE=1
  10751.     Print "Hai deciso di leggerti 1"; : PERSONAGGIO0DEVELEGGERE=True
  10752.    End If 
  10753.   Else If TIPOCO(CATEGORIAO(O))=%10001
  10754.    If Btst(1,TIPOO(O))=True
  10755.     Print "Non puoi berti 1"; : RESTO=True
  10756.     If _MUSICA=False
  10757.      Bell 1
  10758.     End If 
  10759.    Else 
  10760.     COMPIUTAAZIONE=1
  10761.     Print "Hai deciso di berti 1";
  10762.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  10763.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10764.     Bset 1,TIPOO(O)
  10765.     Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(O))
  10766.     RESISTENZAP(0)=Min(RESISTENZAP(0),C0STITUZIONEP(0))
  10767.    End If 
  10768.   Else If TIPOCO(CATEGORIAO(O))=%100000
  10769.    If Btst(1,TIPOO(O))=True
  10770.     Print "Non puoi ammaliarti con 1"; : RESTO=True
  10771.     If _MUSICA=False
  10772.      Bell 1
  10773.     End If 
  10774.    Else 
  10775.     COMPIUTAAZIONE=1
  10776.     Print "Hai deciso di ammaliarti con 1";
  10777.    End If 
  10778.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  10779.    If Btst(1,TIPOO(O))=True
  10780.     Print "Non puoi colpirti con 1"; : RESTO=True
  10781.     If _MUSICA=False
  10782.      Bell 1
  10783.     End If 
  10784.    Else 
  10785.     COMPIUTAAZIONE=1
  10786.     Print "Hai deciso di colpirti con 1";
  10787.     RESISTENZA=RESISTENZAP(0)
  10788.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10789.     For A=0 To NUMEROO
  10790.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10791.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10792.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10793.       End If 
  10794.      End If 
  10795.     Next A
  10796.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10797.    End If 
  10798.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  10799.    If Btst(1,TIPOO(O))=True
  10800.     Print "Non puoi colpirti con 1"; : RESTO=True
  10801.     If _MUSICA=False
  10802.      Bell 1
  10803.     End If 
  10804.    Else 
  10805.     COMPIUTAAZIONE=1
  10806.     Print "Hai deciso di colpirti con 1";
  10807.     RESISTENZA=RESISTENZAP(0)
  10808.     Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(O))
  10809.     For A=0 To NUMEROO
  10810.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10811.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10812.        Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10813.       End If 
  10814.      End If 
  10815.     Next A
  10816.     Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10817.    End If 
  10818.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10819.    If Btst(1,TIPOO(O))=True
  10820.     Print "Non puoi colpirti con 1"; : RESTO=True
  10821.     If _MUSICA=False
  10822.      Bell 1
  10823.     End If 
  10824.    Else 
  10825.     For A=0 To NUMEROO
  10826.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10827.       OGGETTIVINCOLANTIPOSSEDUTI=True
  10828.      End If 
  10829.     Next A
  10830.     If OGGETTIVINCOLANTIPOSSEDUTI=True
  10831.      COMPIUTAAZIONE=1
  10832.      Print "Hai deciso di colpirti con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10833.      RESISTENZA=RESISTENZAP(0)
  10834.      For A=0 To NUMEROO
  10835.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10836.        V=A
  10837.       End If 
  10838.      Next A
  10839.      Add RESISTENZAP(0),-PARATIPOCO(CATEGORIAO(V))*25
  10840.      For A=0 To NUMEROO
  10841.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True
  10842.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10843.         Add RESISTENZAP(0),PARATIPOCO(CATEGORIAO(A))
  10844.        End If 
  10845.       End If 
  10846.      Next A
  10847.      Proc LIMITI[RESISTENZAP(0),0,RESISTENZA] : RESISTENZAP(0)=Param
  10848.     Else 
  10849.      Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  10850.      If _MUSICA=False
  10851.       Bell 1
  10852.      End If 
  10853.     End If 
  10854.    End If 
  10855.   End If 
  10856.  Else 
  10857.   If TIPOCO(CATEGORIAO(O))=%1
  10858.    If Btst(1,TIPOO(O))=True
  10859.     Print "Non puoi far mangiare a ";NOMEP$(P);" 1"; : RESTO=True
  10860.     If _MUSICA=False
  10861.      Bell 1
  10862.     End If 
  10863.    Else 
  10864.     COMPIUTAAZIONE=1
  10865.     Print "Hai deciso di far mangiare a ";NOMEP$(P);" 1";
  10866.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10867.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10868.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10869.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10870.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10871.     Bset 1,TIPOO(O)
  10872.     Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10873.     RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10874.    End If 
  10875.   Else If TIPOCO(CATEGORIAO(O))=%100
  10876.    If Btst(1,TIPOO(O))=True
  10877.     Print "Non puoi difendere ";NOMEP$(P);" con 1"; : RESTO=True
  10878.     If _MUSICA=False
  10879.      Bell 1
  10880.     End If 
  10881.    Else 
  10882.     COMPIUTAAZIONE=1
  10883.     Print "Hai deciso di difendere ";NOMEP$(P);" con 1";
  10884.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10885.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10886.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10887.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10888.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10889.     Bset 2,TIPOO(O)
  10890.    End If 
  10891.   Else If TIPOCO(CATEGORIAO(O))=%1000
  10892.    If Btst(1,TIPOO(O))=True
  10893.     Print "Non puoi far leggere a ";NOMEP$(P);" 1"; : RESTO=True
  10894.     If _MUSICA=False
  10895.      Bell 1
  10896.     End If 
  10897.    Else 
  10898.     COMPIUTAAZIONE=1
  10899.     Print "Hai deciso di far leggere a ";NOMEP$(P);" 1";
  10900.    End If 
  10901.   Else If TIPOCO(CATEGORIAO(O))=%10001
  10902.    If Btst(1,TIPOO(O))=True
  10903.     Print "Non puoi far bere a ";NOMEP$(P);" 1"; : RESTO=True
  10904.     If _MUSICA=False
  10905.      Bell 1
  10906.     End If 
  10907.    Else 
  10908.     COMPIUTAAZIONE=1
  10909.     Print "Hai deciso di far bere a ";NOMEP$(P);" 1";
  10910.     Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  10911.     Add PESONETTOP(0),-PESOCO(CATEGORIAO(O))
  10912.     POSIZIONEO(O)=-1-P : Bset 0,TIPOO(O)
  10913.     Add PESONETTOP(P),PESOCO(CATEGORIAO(O))
  10914.     Inc OGGETTODATOOLASCIATO(CATEGORIAO(O))
  10915.     Bset 1,TIPOO(O)
  10916.     Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(O))
  10917.     RESISTENZAP(P)=Min(RESISTENZAP(P),C0STITUZIONEP(P))
  10918.    End If 
  10919.   Else If TIPOCO(CATEGORIAO(O))=%100000
  10920.    If Btst(1,TIPOO(O))=True
  10921.     Print "Non puoi ammaliare ";NOMEP$(P);" con 1"; : RESTO=True
  10922.     If _MUSICA=False
  10923.      Bell 1
  10924.     End If 
  10925.    Else 
  10926.     COMPIUTAAZIONE=1
  10927.     Print "Hai deciso di ammaliare ";NOMEP$(P);" con 1";
  10928.    End If 
  10929.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  10930.    If Btst(1,TIPOO(O))=True
  10931.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10932.     If _MUSICA=False
  10933.      Bell 1
  10934.     End If 
  10935.    Else 
  10936.     COMPIUTAAZIONE=1
  10937.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10938.     RESISTENZA=RESISTENZAP(P)
  10939.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10940.     For A=0 To NUMEROO
  10941.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10942.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10943.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10944.       End If 
  10945.      End If 
  10946.     Next A
  10947.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10948.    End If 
  10949.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  10950.    If Btst(1,TIPOO(O))=True
  10951.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10952.     If _MUSICA=False
  10953.      Bell 1
  10954.     End If 
  10955.    Else 
  10956.     COMPIUTAAZIONE=1
  10957.     Print "Hai deciso di colpire ";NOMEP$(P);" con 1";
  10958.     RESISTENZA=RESISTENZAP(P)
  10959.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  10960.     For A=0 To NUMEROO
  10961.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10962.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  10963.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  10964.       End If 
  10965.      End If 
  10966.     Next A
  10967.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  10968.    End If 
  10969.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  10970.    If Btst(1,TIPOO(O))=True
  10971.     Print "Non puoi colpire ";NOMEP$(P);" con 1"; : RESTO=True
  10972.     If _MUSICA=False
  10973.      Bell 1
  10974.     End If 
  10975.    Else 
  10976.     For A=0 To NUMEROO
  10977.      If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  10978.       OGGETTIVINCOLANTIPOSSEDUTI=True
  10979.      End If 
  10980.     Next A
  10981.     If OGGETTIVINCOLANTIPOSSEDUTI=True
  10982.      COMPIUTAAZIONE=1
  10983.      Print "Hai deciso di colpire ";NOMEP$(P);" con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  10984.      RESISTENZA=RESISTENZAP(0)
  10985.      For A=0 To NUMEROO
  10986.       If POSIZIONEO(A)=-1 and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  10987.        V=A
  10988.       End If 
  10989.      Next A
  10990.      Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  10991.      If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  10992.       POSIZIONEO(V)= Not P : Bset 0,TIPOO(V)
  10993.       Dec OGGETTODELPERSONAGGIO0(CATEGORIAO(V))
  10994.       Add PESONETTOP(P),PESOCO(CATEGORIAO(V))
  10995.       Inc OGGETTODATOOLASCIATO(CATEGORIAO(V))
  10996.      End If 
  10997.      For A=0 To NUMEROO
  10998.       If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  10999.        If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11000.         Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11001.        End If 
  11002.       End If 
  11003.      Next A
  11004.      Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11005.     Else 
  11006.      Print "Non hai 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" da usare con 1";
  11007.      If _MUSICA=False
  11008.       Bell 1
  11009.      End If 
  11010.     End If 
  11011.    End If 
  11012.   End If 
  11013.  End If 
  11014.  Print " ";
  11015.  If RESTO=True
  11016.   Print NOMESRO$(CATEGORIAO(O));
  11017.  Else 
  11018.   Print NOMESCO$(CATEGORIAO(O));
  11019.  End If 
  11020.  OGGETTOUSANTE=O
  11021.  PERSONAGGIOSUCUIPERSONAGGIO0HAUSATO=P
  11022.  If P>0 and RESISTENZAP(P)=0 Then Proc MORTE[P]
  11023.  Proc _ASPETTA
  11024.  If PERSONAGGIO0DEVELEGGERE=True
  11025.   Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  11026.   PERSONAGGIO0DEVELEGGERE=False
  11027.  End If 
  11028. End Proc
  11029. Procedure USASUPERSONAGGIOP[O,P,Q]
  11030.  If P=Q Then Pop Proc
  11031.  If Btst(1,TIPOO(O))=False
  11032.   If Btst(2,TIPOP(0))=False
  11033.    PERSONAGGIO0SVEGLIO=True
  11034.   End If 
  11035.   If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11036.    PERSONAGGIOVISIBILE=True
  11037.   Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11038.    PERSONAGGIOVISIBILE=True
  11039.   Else If POSIZIONEP(P)=-1-Q and Btst(0,TIPOP(P))=True
  11040.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11041.     PERSONAGGIOVISIBILE=True
  11042.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11043.     PERSONAGGIOVISIBILE=True
  11044.    End If 
  11045.   End If 
  11046.   If TIPOCO(CATEGORIAO(O))=%1
  11047.    If Q>0
  11048.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11049.      AZIONE$="sta facendo mangiare a "+NOMEP$(Q)+" 1"
  11050.     End If 
  11051.    Else 
  11052.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11053.      AZIONE$="ti sta facendo mangiare 1"
  11054.     End If 
  11055.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  11056.    End If 
  11057.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11058.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11059.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11060.    Bset 1,TIPOO(O)
  11061.    Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  11062.    RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  11063.   Else If TIPOCO(CATEGORIAO(O))=%100
  11064.    If Q>0
  11065.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11066.      AZIONE$="sta difendendo "+NOMEP$(Q)+" con 1"
  11067.     End If 
  11068.    Else 
  11069.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11070.      AZIONE$="ti sta difendendo con 1"
  11071.     End If 
  11072.     Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(O))
  11073.    End If 
  11074.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11075.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11076.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11077.    Bset 2,TIPOO(O)
  11078.   Else If TIPOCO(CATEGORIAO(O))=%1000
  11079.    If Q>0
  11080.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11081.      AZIONE$="sta facendo leggere a "+NOMEP$(Q)+" 1"
  11082.     End If 
  11083.    Else 
  11084.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11085.      AZIONE$="ti sta facendo leggere 1" : PERSONAGGIO0DEVELEGGERE=True
  11086.     End If 
  11087.    End If 
  11088.   Else If TIPOCO(CATEGORIAO(O))=%10001
  11089.    If Q>0
  11090.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11091.      AZIONE$="sta facendo bere a "+NOMEP$(Q)+" 1"
  11092.     End If 
  11093.    Else 
  11094.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11095.      AZIONE$="ti sta facendo bere 1"
  11096.     End If 
  11097.     Inc RESTODELPERSONAGGIO0(CATEGORIAO(O))
  11098.    End If 
  11099.    Add PESONETTOP(P),-PESOCO(CATEGORIAO(O))
  11100.    POSIZIONEO(O)=-1-Q : Bset 0,TIPOO(O)
  11101.    Add PESONETTOP(Q),PESOCO(CATEGORIAO(O))
  11102.    Bset 1,TIPOO(O)
  11103.    Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(O))
  11104.    RESISTENZAP(Q)=Min(RESISTENZAP(Q),C0STITUZIONEP(Q))
  11105.   Else If TIPOCO(CATEGORIAO(O))=%100000
  11106.    If Q>0
  11107.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11108.      AZIONE$="sta ammaliando "+NOMEP$(Q)+" con 1"
  11109.     End If 
  11110.    Else 
  11111.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11112.      AZIONE$="ti sta ammaliando con 1"
  11113.     End If 
  11114.    End If 
  11115.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  11116.    If Q>0
  11117.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11118.      AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  11119.     End If 
  11120.    Else 
  11121.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11122.      AZIONE$="ti sta colpendo con 1"
  11123.     End If 
  11124.    End If 
  11125.    RESISTENZA=RESISTENZAP(Q)
  11126.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  11127.    For A=0 To NUMEROO
  11128.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11129.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11130.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11131.      End If 
  11132.     End If 
  11133.    Next A
  11134.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11135.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  11136.    If Q>0
  11137.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11138.      AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1"
  11139.     End If 
  11140.    Else 
  11141.     If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11142.      AZIONE$="ti sta colpendo con 1"
  11143.     End If 
  11144.    End If 
  11145.    RESISTENZA=RESISTENZAP(Q)
  11146.    Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(O))
  11147.    For A=0 To NUMEROO
  11148.     If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11149.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11150.       Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11151.      End If 
  11152.     End If 
  11153.    Next A
  11154.    Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11155.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  11156.    For A=0 To NUMEROO
  11157.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  11158.      OGGETTIVINCOLANTIPOSSEDUTI=True
  11159.     End If 
  11160.    Next A
  11161.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  11162.     If Q>0
  11163.      If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11164.       AZIONE$="sta colpendo "+NOMEP$(Q)+" con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  11165.      End If 
  11166.     Else 
  11167.      If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True
  11168.       AZIONE$="ti sta colpendo con 1 "+NOMESCO$(PARATIPOCO(CATEGORIAO(O)))+" usando 1"
  11169.      End If 
  11170.     End If 
  11171.     RESISTENZA=RESISTENZAP(Q)
  11172.     For A=0 To NUMEROO
  11173.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  11174.       V=A
  11175.      End If 
  11176.     Next A
  11177.     Add RESISTENZAP(Q),-PARATIPOCO(CATEGORIAO(V))*25
  11178.     If Btst(8,TIPOCO(CATEGORIAO(V)))=True
  11179.      If Q=0
  11180.       Inc OGGETTODELPERSONAGGIO0(CATEGORIAO(V))
  11181.      End If 
  11182.      POSIZIONEO(V)=-1-Q : Bset 0,TIPOO(V)
  11183.      Add PESONETTOP(Q),PESOCO(CATEGORIAO(V))
  11184.     End If 
  11185.     For A=0 To NUMEROO
  11186.      If POSIZIONEO(A)=-1-Q and Btst(0,TIPOO(A))=True
  11187.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11188.        Add RESISTENZAP(Q),PARATIPOCO(CATEGORIAO(A))
  11189.       End If 
  11190.      End If 
  11191.     Next A
  11192.     Proc LIMITI[RESISTENZAP(Q),0,RESISTENZA] : RESISTENZAP(Q)=Param
  11193.    End If 
  11194.   End If 
  11195.   If PERSONAGGIOVISIBILE=True and PERSONAGGIO0SVEGLIO=True and AZIONE$<>""
  11196.    Print NOMEP$(P);" ";AZIONE$;" ";NOMESCO$(CATEGORIAO(O))
  11197.   End If 
  11198.   If Q>0 and RESISTENZAP(Q)=0
  11199.    If PERSONAGGIOVISIBILE=True
  11200.     Proc MORTE[Q]
  11201.    End If 
  11202.   End If 
  11203.   If PERSONAGGIO0DEVELEGGERE=True
  11204.    Proc MOSTRAMESSAGGIO["Lettura di 1 "+NOMESCO$(CATEGORIAO(O)),TESTOO$(TESTOO(O))]
  11205.    PERSONAGGIO0DEVELEGGERE=False
  11206.   End If 
  11207.  End If 
  11208. End Proc
  11209. Procedure USASUUNOGGETTO[O]
  11210.  For A=0 To NUMEROCO
  11211.   If OGGETTINELLUOGO(A)>0
  11212.    Inc CATEGORIEOGGETTI
  11213.   End If 
  11214.   If RESTINELLUOGO(A)>0
  11215.    Inc CATEGORIEOGGETTI
  11216.   End If 
  11217.  Next A
  11218.  If CATEGORIEOGGETTI>0
  11219.   If CATEGORIEOGGETTI>1
  11220.    Locate 0,ULTIMALINEA : Input "Su quale oggetto vuoi usare ?>";OGGETTO$;
  11221.    Curs Off 
  11222.    If OGGETTO$<>""
  11223.     For A=0 To NUMEROO
  11224.      If POSIZIONEO(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(0)=0 and Btst(3,TIPOO(A))=False
  11225.       If Lower$(OGGETTO$)=Lower$(NOMESCO$(CATEGORIAO(A)))
  11226.        Proc USASUOGGETTO[O,A] : Exit 
  11227.       Else If Lower$(OGGETTO$)=Lower$(NOMESRO$(CATEGORIAO(A)))
  11228.        Proc USASUOGGETTO[O,A] : Exit 
  11229.       End If 
  11230.      End If 
  11231.     Next A
  11232.     If A=NUMEROO+1
  11233.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";OGGETTO$;
  11234.      If _MUSICA=False
  11235.       Bell 1
  11236.      End If 
  11237.      Proc _ASPETTA
  11238.     End If 
  11239.    End If 
  11240.   Else 
  11241.    For A=0 To NUMEROO
  11242.     If POSIZIONEO(A)=POSIZIONEP(0) and Btst(3,TIPOO(A))=False
  11243.      Proc USASUOGGETTO[O,A] : Exit 
  11244.     End If 
  11245.    Next A
  11246.   End If 
  11247.  End If 
  11248. End Proc
  11249. Procedure USASUUNPERSONAGGIO[O]
  11250.  For A=0 To NUMEROP
  11251.   If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  11252.    Inc PERSONAGGI
  11253.   Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  11254.    Inc PERSONAGGI
  11255.   End If 
  11256.  Next A
  11257.  If PERSONAGGI>1
  11258.   Locate 0,ULTIMALINEA : Input "Su quale personaggio vuoi usare ?>";PERSONAGGIO$;
  11259.   Curs Off 
  11260.   If PERSONAGGIO$<>""
  11261.    PERSONAGGIO$=Lower$(PERSONAGGIO$)
  11262.    If PERSONAGGIO$="me"
  11263.     USASUPERSONAGGIO[O,0]
  11264.    Else 
  11265.     For A=1 To NUMEROP
  11266.      If PERSONAGGIO$=Lower$(NOMEP$(A))
  11267.       If POSIZIONEP(A)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(A)=DREZIONEPRESAP(0)
  11268.        USASUPERSONAGGIO[O,A] : Exit 
  11269.       Else If LUOGODIDESTINAZIONEP(A)=POSIZIONEP(0) and CAMMINOP(A)-TEMP0DIATTRAVERSAMENTOP(A)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(A)=DREZIONEPRESAP(0)
  11270.        USASUPERSONAGGIO[O,A] : Exit 
  11271.       End If 
  11272.      End If 
  11273.     Next A
  11274.     If A=NUMEROP+1
  11275.      Locate 0,ULTIMALINEA : Cline : Print "Non c'� nessun ";PERSONAGGIO$;
  11276.      If _MUSICA=False
  11277.       Bell 1
  11278.      End If 
  11279.      Proc _ASPETTA
  11280.     End If 
  11281.    End If 
  11282.   End If 
  11283.  Else 
  11284.   USASUPERSONAGGIO[O,0]
  11285.  End If 
  11286. End Proc
  11287. Procedure USATI[O,P]
  11288.  If Btst(1,TIPOO(O))=False
  11289.   If Btst(2,TIPOP(0))=False
  11290.    If POSIZIONEP(P)=POSIZIONEP(0) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEPRESAP(P)=DREZIONEPRESAP(0)
  11291.     PERSONAGGIOVISIBILE=True
  11292.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(0) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(0) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(0)
  11293.     PERSONAGGIOVISIBILE=True
  11294.    Else If POSIZIONEP(P)=-1 and Btst(0,TIPOP(P))=True
  11295.     PERSONAGGIOVISIBILE=True
  11296.    End If 
  11297.   End If 
  11298.   If PERSONAGGIOVISIBILE=True
  11299.    Print NOMEP$(P);" ";
  11300.   End If 
  11301.   If TIPOCO(CATEGORIAO(O))=%1
  11302.    If PERSONAGGIOVISIBILE=True
  11303.     Print "si sta mangiando 1";
  11304.    End If 
  11305.    Bset 1,TIPOO(O)
  11306.    If RESISTENZAP(P)<C0STITUZIONEP(P)
  11307.     Inc RESISTENZAP(P)
  11308.    End If 
  11309.   Else If TIPOCO(CATEGORIAO(O))=%100
  11310.    If PERSONAGGIOVISIBILE=True
  11311.     Print "si sta difendendo con 1";
  11312.    End If 
  11313.    Bset 2,TIPOO(O)
  11314.   Else If TIPOCO(CATEGORIAO(O))=%1000
  11315.    If PERSONAGGIOVISIBILE=True
  11316.     Print "si sta leggendo 1";
  11317.    End If 
  11318.   Else If TIPOCO(CATEGORIAO(O))=%10001
  11319.    If PERSONAGGIOVISIBILE=True
  11320.     Print "si sta bevendo 1";
  11321.    End If 
  11322.    Bset 1,TIPOO(O)
  11323.    If RESISTENZAP(P)<C0STITUZIONEP(P)
  11324.     Inc RESISTENZAP(P)
  11325.    End If 
  11326.   Else If TIPOCO(CATEGORIAO(O))=%100000
  11327.    If PERSONAGGIOVISIBILE=True
  11328.     Print "si sta ammaliando con 1";
  11329.    End If 
  11330.   Else If TIPOCO(CATEGORIAO(O))=%1000000
  11331.    If PERSONAGGIOVISIBILE=True
  11332.     Print "si colpisce con 1";
  11333.    End If 
  11334.    RESISTENZA=RESISTENZAP(P)
  11335.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  11336.    For A=0 To NUMEROO
  11337.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11338.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=False
  11339.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11340.      End If 
  11341.     End If 
  11342.    Next A
  11343.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11344.   Else If TIPOCO(CATEGORIAO(O))=%101000000
  11345.    If PERSONAGGIOVISIBILE=True
  11346.     Print "si colpisce con 1";
  11347.    End If 
  11348.    RESISTENZA=RESISTENZAP(P)
  11349.    Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(O))
  11350.    For A=0 To NUMEROO
  11351.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11352.      If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11353.       Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11354.      End If 
  11355.     End If 
  11356.    Next A
  11357.    Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11358.   Else If TIPOCO(CATEGORIAO(O))=%10001000000
  11359.    For A=0 To NUMEROO
  11360.     If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O)) and Btst(1,TIPOO(A))=False
  11361.      OGGETTIVINCOLANTIPOSSEDUTI=True
  11362.     End If 
  11363.    Next A
  11364.    If OGGETTIVINCOLANTIPOSSEDUTI=True
  11365.     If PERSONAGGIOVISIBILE=True
  11366.      Print "si colpisce con 1 ";NOMESCO$(PARATIPOCO(CATEGORIAO(O)));" usando 1";
  11367.     End If 
  11368.     RESISTENZA=RESISTENZAP(0)
  11369.     For A=0 To NUMEROO
  11370.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARATIPOCO(CATEGORIAO(O))
  11371.       V=A
  11372.      End If 
  11373.     Next A
  11374.     Add RESISTENZAP(P),-PARATIPOCO(CATEGORIAO(V))*25
  11375.     For A=0 To NUMEROO
  11376.      If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11377.       If Btst(2,TIPOCO(CATEGORIAO(A)))=True and Btst(2,TIPOO(A))=True
  11378.        Add RESISTENZAP(P),PARATIPOCO(CATEGORIAO(A))
  11379.       End If 
  11380.      End If 
  11381.     Next A
  11382.     Proc LIMITI[RESISTENZAP(P),0,RESISTENZA] : RESISTENZAP(P)=Param
  11383.    End If 
  11384.   End If 
  11385.   If PERSONAGGIOVISIBILE=True
  11386.    Print " ";NOMESCO$(CATEGORIAO(O))
  11387.   End If 
  11388.   If P>0 and RESISTENZAP(P)=0
  11389.    If PERSONAGGIOVISIBILE=True
  11390.     Proc MORTE[P]
  11391.    End If 
  11392.   End If 
  11393.  End If 
  11394. End Proc
  11395. Procedure USATIUNO[AZIONE,P]
  11396.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11397.  For A=0 To NUMEROO
  11398.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11399.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11400.    B=A
  11401.   End If 
  11402.  Next A
  11403.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11404.   Pop Proc
  11405.  End If 
  11406.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11407.   A=B
  11408.  Else 
  11409.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11410.   B=0
  11411.   For A=0 To NUMEROO
  11412.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11413.     OGGETTODELPERSONAGGIOP(B)=A
  11414.     Inc B
  11415.    End If 
  11416.   Next A
  11417.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11418.  End If 
  11419.  Proc USATI[A,P]
  11420. End Proc
  11421. Procedure USATIUNOA[AZIONE,P]
  11422.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11423.  For A=0 To NUMEROO
  11424.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11425.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11426.    B=A
  11427.   End If 
  11428.  Next A
  11429.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11430.   Pop Proc
  11431.  End If 
  11432.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11433.   A=B
  11434.  Else 
  11435.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11436.   B=0
  11437.   For A=0 To NUMEROO
  11438.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11439.     OGGETTODELPERSONAGGIOP(B)=A
  11440.     Inc B
  11441.    End If 
  11442.   Next A
  11443.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11444.  End If 
  11445.  Proc USATI[A,P]
  11446. End Proc
  11447. Procedure USATIUNOTA[AZIONE,P]
  11448.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11449.  For A=0 To NUMEROO
  11450.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11451.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11452.    B=A
  11453.   End If 
  11454.  Next A
  11455.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11456.   Pop Proc
  11457.  End If 
  11458.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11459.   A=B
  11460.  Else 
  11461.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11462.   B=0
  11463.   For A=0 To NUMEROO
  11464.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11465.     OGGETTODELPERSONAGGIOP(B)=A
  11466.     Inc B
  11467.    End If 
  11468.   Next A
  11469.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11470.  End If 
  11471.  Proc USATI[A,P]
  11472. End Proc
  11473. Procedure USAUNOSUAO[AZIONE,P]
  11474.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11475.  For A=0 To NUMEROO
  11476.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11477.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11478.    B=A
  11479.   End If 
  11480.  Next A
  11481.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11482.   Pop Proc
  11483.  End If 
  11484.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11485.   A=B
  11486.  Else 
  11487.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11488.   B=0
  11489.   For A=0 To NUMEROO
  11490.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11491.     OGGETTODELPERSONAGGIOP(B)=A
  11492.     Inc B
  11493.    End If 
  11494.   Next A
  11495.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11496.  End If 
  11497.  For B=0 To NUMEROO
  11498.   If POSIZIONEO(B)=POSIZIONEP(P)
  11499.    USASUOGGETTOP[A,P,B]
  11500.    Dec PARAAAZIONEP(AZIONE,P)
  11501.    If PARAAAZIONEP(AZIONE,P)=0
  11502.     FINEA(AZIONE,P)=True
  11503.    End If 
  11504.    Exit 
  11505.   End If 
  11506.  Next B
  11507. End Proc
  11508. Procedure USAUNOSUAOB[AZIONE,P]
  11509.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11510.  For A=0 To NUMEROO
  11511.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11512.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11513.    B=A
  11514.   End If 
  11515.  Next A
  11516.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11517.   Pop Proc
  11518.  End If 
  11519.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11520.   A=B
  11521.  Else 
  11522.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11523.   B=0
  11524.   For A=0 To NUMEROO
  11525.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11526.     OGGETTODELPERSONAGGIOP(B)=A
  11527.     Inc B
  11528.    End If 
  11529.   Next A
  11530.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11531.  End If 
  11532.  For B=0 To NUMEROO
  11533.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARABAZIONEP(AZIONE,P)
  11534.    USASUOGGETTOP[A,P,B]
  11535.    Dec PARAAAZIONEP(AZIONE,P)
  11536.    If PARAAAZIONEP(AZIONE,P)=0
  11537.     FINEA(AZIONE,P)=True
  11538.    End If 
  11539.    Exit 
  11540.   End If 
  11541.  Next B
  11542. End Proc
  11543. Procedure USAUNOSUAOTB[AZIONE,P]
  11544.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11545.  For A=0 To NUMEROO
  11546.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11547.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11548.    B=A
  11549.   End If 
  11550.  Next A
  11551.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11552.   Pop Proc
  11553.  End If 
  11554.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11555.   A=B
  11556.  Else 
  11557.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11558.   B=0
  11559.   For A=0 To NUMEROO
  11560.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11561.     OGGETTODELPERSONAGGIOP(B)=A
  11562.     Inc B
  11563.    End If 
  11564.   Next A
  11565.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11566.  End If 
  11567.  For B=0 To NUMEROO
  11568.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARABAZIONEP(AZIONE,P)
  11569.    USASUOGGETTOP[A,P,B]
  11570.    Dec PARAAAZIONEP(AZIONE,P)
  11571.    If PARAAAZIONEP(AZIONE,P)=0
  11572.     FINEA(AZIONE,P)=True
  11573.    End If 
  11574.    Exit 
  11575.   End If 
  11576.  Next B
  11577. End Proc
  11578. Procedure USAUNOSUAP[AZIONE,P]
  11579.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11580.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11581.   PERSONAGGIOTROVATO=A
  11582.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11583.   PERSONAGGIOTROVATO=A
  11584.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11585.   PERSONAGGIOTROVATO=A
  11586.  End If 
  11587.  If PERSONAGGIOTROVATO>-1
  11588.   For A=0 To NUMEROO
  11589.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11590.     USASUPERSONAGGIOP[A,P,PERSONAGGIOTROVATO]
  11591.     Dec PARAAAZIONEP(AZIONE,P)
  11592.     If PARAAAZIONEP(AZIONE,P)=0
  11593.      FINEA(AZIONE,P)=True
  11594.     End If 
  11595.     Exit 
  11596.    End If 
  11597.   Next A
  11598.  End If 
  11599. End Proc
  11600. Procedure USAUNOSUPA[AZIONE,P]
  11601.  A=PARAAAZIONEP(AZIONE,P)
  11602.  For B=0 To NUMEROO
  11603.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True
  11604.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11605.     Proc USASUPERSONAGGIOP[B,P,A]
  11606.     Exit 
  11607.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11608.     Proc USASUPERSONAGGIOP[B,P,A]
  11609.     Exit 
  11610.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11611.     Proc USASUPERSONAGGIOP[B,P,A]
  11612.     Exit 
  11613.    End If 
  11614.   End If 
  11615.  Next B
  11616. End Proc
  11617. Procedure USAUNOASUBO[AZIONE,P]
  11618.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11619.  For A=0 To NUMEROO
  11620.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11621.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11622.    B=A
  11623.   End If 
  11624.  Next A
  11625.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11626.   Pop Proc
  11627.  End If 
  11628.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11629.   A=B
  11630.  Else 
  11631.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11632.   B=0
  11633.   For A=0 To NUMEROO
  11634.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11635.     OGGETTODELPERSONAGGIOP(B)=A
  11636.     Inc B
  11637.    End If 
  11638.   Next A
  11639.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11640.  End If 
  11641.  For B=0 To NUMEROO
  11642.   If POSIZIONEO(B)=POSIZIONEP(P)
  11643.    USASUOGGETTOP[A,P,B]
  11644.    Dec PARABAZIONEP(AZIONE,P)
  11645.    If PARABAZIONEP(AZIONE,P)=0
  11646.     FINEA(AZIONE,P)=True
  11647.    End If 
  11648.    Exit 
  11649.   End If 
  11650.  Next B
  11651. End Proc
  11652. Procedure USAUNOASUBOC[AZIONE,P]
  11653.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11654.  For A=0 To NUMEROO
  11655.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11656.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11657.    B=A
  11658.   End If 
  11659.  Next A
  11660.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11661.   Pop Proc
  11662.  End If 
  11663.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11664.   A=B
  11665.  Else 
  11666.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11667.   B=0
  11668.   For A=0 To NUMEROO
  11669.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11670.     OGGETTODELPERSONAGGIOP(B)=A
  11671.     Inc B
  11672.    End If 
  11673.   Next A
  11674.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11675.  End If 
  11676.  For B=0 To NUMEROO
  11677.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11678.    USASUOGGETTOP[A,P,B]
  11679.    Dec PARABAZIONEP(AZIONE,P)
  11680.    If PARABAZIONEP(AZIONE,P)=0
  11681.     FINEA(AZIONE,P)=True
  11682.    End If 
  11683.    Exit 
  11684.   End If 
  11685.  Next B
  11686. End Proc
  11687. Procedure USAUNOASUBOTC[AZIONE,P]
  11688.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11689.  For A=0 To NUMEROO
  11690.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11691.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11692.    B=A
  11693.   End If 
  11694.  Next A
  11695.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11696.   Pop Proc
  11697.  End If 
  11698.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11699.   A=B
  11700.  Else 
  11701.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11702.   B=0
  11703.   For A=0 To NUMEROO
  11704.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11705.     OGGETTODELPERSONAGGIOP(B)=A
  11706.     Inc B
  11707.    End If 
  11708.   Next A
  11709.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11710.  End If 
  11711.  For B=0 To NUMEROO
  11712.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11713.    USASUOGGETTOP[A,P,B]
  11714.    Dec PARABAZIONEP(AZIONE,P)
  11715.    If PARABAZIONEP(AZIONE,P)=0
  11716.     FINEA(AZIONE,P)=True
  11717.    End If 
  11718.    Exit 
  11719.   End If 
  11720.  Next B
  11721. End Proc
  11722. Procedure USAUNOASUBP[AZIONE,P]
  11723.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11724.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11725.   PERSONAGGIOTROVATO=A
  11726.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11727.   PERSONAGGIOTROVATO=A
  11728.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11729.   PERSONAGGIOTROVATO=A
  11730.  End If 
  11731.  If PERSONAGGIOTROVATO>-1
  11732.   For A=0 To NUMEROO
  11733.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(A)=PARAAAZIONEP(AZIONE,P)
  11734.     USASUPERSONAGGIOP[A,P,B]
  11735.     Dec PARABAZIONEP(AZIONE,P)
  11736.     If PARABAZIONEP(AZIONE,P)=0
  11737.      FINEA(AZIONE,P)=True
  11738.     End If 
  11739.     Exit 
  11740.    End If 
  11741.   Next A
  11742.  End If 
  11743. End Proc
  11744. Procedure USAUNOASUPB[AZIONE,P]
  11745.  A=PARABAZIONEP(AZIONE,P)
  11746.  For B=0 To NUMEROO
  11747.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and CATEGORIAO(B)=PARAAAZIONEP(AZIONE,P)
  11748.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11749.     Proc USASUPERSONAGGIOP[B,P,A]
  11750.     Exit 
  11751.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11752.     Proc USASUPERSONAGGIOP[B,P,A]
  11753.     Exit 
  11754.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11755.     Proc USASUPERSONAGGIOP[B,P,A]
  11756.     Exit 
  11757.    End If 
  11758.   End If 
  11759.  Next B
  11760. End Proc
  11761. Procedure USAUNOTASUBO[AZIONE,P]
  11762.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11763.  For A=0 To NUMEROO
  11764.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11765.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11766.    B=A
  11767.   End If 
  11768.  Next A
  11769.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11770.   Pop Proc
  11771.  End If 
  11772.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11773.   A=B
  11774.  Else 
  11775.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11776.   B=0
  11777.   For A=0 To NUMEROO
  11778.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11779.     OGGETTODELPERSONAGGIOP(B)=A
  11780.     Inc B
  11781.    End If 
  11782.   Next A
  11783.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11784.  End If 
  11785.  For B=0 To NUMEROO
  11786.   If POSIZIONEO(B)=POSIZIONEP(P)
  11787.    USASUOGGETTOP[A,P,B]
  11788.    Dec PARABAZIONEP(AZIONE,P)
  11789.    If PARABAZIONEP(AZIONE,P)=0
  11790.     FINEA(AZIONE,P)=True
  11791.    End If 
  11792.    Exit 
  11793.   End If 
  11794.  Next B
  11795. End Proc
  11796. Procedure USAUNOTASUBOC[AZIONE,P]
  11797.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11798.  For A=0 To NUMEROO
  11799.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11800.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11801.    B=A
  11802.   End If 
  11803.  Next A
  11804.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11805.   Pop Proc
  11806.  End If 
  11807.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11808.   A=B
  11809.  Else 
  11810.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11811.   B=0
  11812.   For A=0 To NUMEROO
  11813.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11814.     OGGETTODELPERSONAGGIOP(B)=A
  11815.     Inc B
  11816.    End If 
  11817.   Next A
  11818.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11819.  End If 
  11820.  For B=0 To NUMEROO
  11821.   If POSIZIONEO(B)=POSIZIONEP(P) and CATEGORIAO(B)=PARACAZIONEP(AZIONE,P)
  11822.    USASUOGGETTOP[A,P,B]
  11823.    Dec PARABAZIONEP(AZIONE,P)
  11824.    If PARABAZIONEP(AZIONE,P)=0
  11825.     FINEA(AZIONE,P)=True
  11826.    End If 
  11827.    Exit 
  11828.   End If 
  11829.  Next B
  11830. End Proc
  11831. Procedure USAUNOTASUBOTC[AZIONE,P]
  11832.  NUMEROOGGETTODELPERSONAGGIOP=-1
  11833.  For A=0 To NUMEROO
  11834.   If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11835.    Inc NUMEROOGGETTODELPERSONAGGIOP
  11836.    B=A
  11837.   End If 
  11838.  Next A
  11839.  If NUMEROOGGETTODELPERSONAGGIOP=-1
  11840.   Pop Proc
  11841.  End If 
  11842.  If NUMEROOGGETTODELPERSONAGGIOP=0
  11843.   A=B
  11844.  Else 
  11845.   Dim OGGETTODELPERSONAGGIOP(NUMEROOGGETTODELPERSONAGGIOP)
  11846.   B=0
  11847.   For A=0 To NUMEROO
  11848.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True
  11849.     OGGETTODELPERSONAGGIOP(B)=A
  11850.     Inc B
  11851.    End If 
  11852.   Next A
  11853.   A=OGGETTODELPERSONAGGIOP(Rnd(NUMEROOGGETTODELPERSONAGGIOP))
  11854.  End If 
  11855.  For B=0 To NUMEROO
  11856.   If POSIZIONEO(B)=POSIZIONEP(P) and TIPOCO(CATEGORIAO(B))=PARACAZIONEP(AZIONE,P)
  11857.    USASUOGGETTOP[A,P,B]
  11858.    Dec PARABAZIONEP(AZIONE,P)
  11859.    If PARABAZIONEP(AZIONE,P)=0
  11860.     FINEA(AZIONE,P)=True
  11861.    End If 
  11862.    Exit 
  11863.   End If 
  11864.  Next B
  11865. End Proc
  11866. Procedure USAUNOTASUBP[AZIONE,P]
  11867.  A=Rnd(NUMEROP) : PERSONAGGIOTROVATO=-1
  11868.  If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11869.   PERSONAGGIOTROVATO=A
  11870.  Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11871.   PERSONAGGIOTROVATO=A
  11872.  Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11873.   PERSONAGGIOTROVATO=A
  11874.  End If 
  11875.  If PERSONAGGIOTROVATO>-1
  11876.   For A=0 To NUMEROO
  11877.    If POSIZIONEO(A)=-1-P and Btst(0,TIPOO(A))=True and TIPOCO(CATEGORIAO(A))=PARAAAZIONEP(AZIONE,P)
  11878.     USASUPERSONAGGIOP[A,P,B]
  11879.     Dec PARABAZIONEP(AZIONE,P)
  11880.     If PARABAZIONEP(AZIONE,P)=0
  11881.      FINEA(AZIONE,P)=True
  11882.     End If 
  11883.     Exit 
  11884.    End If 
  11885.   Next A
  11886.  End If 
  11887. End Proc
  11888. Procedure USAUNOTASUPB[AZIONE,P]
  11889.  A=PARABAZIONEP(AZIONE,P)
  11890.  For B=0 To NUMEROO
  11891.   If POSIZIONEO(B)=-1-P and Btst(0,TIPOO(B))=True and TIPOCO(CATEGORIAO(B))=PARAAAZIONEP(AZIONE,P)
  11892.    If POSIZIONEP(P)=POSIZIONEP(A) and TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEPRESAP(P)=DREZIONEPRESAP(A) and Btst(0,TIPOP(P))=Btst(0,TIPOP(A))
  11893.     Proc USASUPERSONAGGIOP[B,P,A]
  11894.     Exit 
  11895.    Else If LUOGODIDESTINAZIONEP(P)=POSIZIONEP(A) and CAMMINOP(P)-TEMP0DIATTRAVERSAMENTOP(P)=TEMP0DIATTRAVERSAMENTOP(A) and DREZIONEOPPOSTAAQUELLAPRESAP(P)=DREZIONEPRESAP(A)
  11896.     Proc USASUPERSONAGGIOP[B,P,A]
  11897.     Exit 
  11898.    Else If POSIZIONEP(P)=-1-A and Btst(0,TIPOP(P))=True
  11899.     Proc USASUPERSONAGGIOP[B,P,A]
  11900.     Exit 
  11901.    End If 
  11902.   End If 
  11903.  Next B
  11904. End Proc